zoukankan      html  css  js  c++  java
  • Leetcode 189 Rotate Array

    Rotate an array of n elements to the right by k steps.

    For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].

    Note:
    Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.

    [show hint]

    Credits:
    Special thanks to @Freezen for adding this problem and creating all test cases.

    解题思路:

    几天没回来刷题结果Leetcode又出新题了。。真的是刷不完的节奏了吗。。。

    我的思路是copy给的array两遍, 比如{1, 2, 3, 4, 5, 6, 7}就变成了{1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7} (跟亚麻他们家OA的那道right rotation差不多思路)

    然后找到k该开始的那个点, 比如 k = 3, 就是从index = nums.length - k开始的~从那开始往后截取就行啦~~~

    注意的是: k有可能是nums长度的各种各种倍, 比如100多倍这样子, 所以要取余~

     1 public void rotate(int[] nums, int k) {
     2         k = k % nums.length;
     3         int[] temp = new int[nums.length * 2];
     4         for(int i = 0; i < nums.length; i++){
     5             temp[i] = nums[i];
     6             temp[i + nums.length] = nums[i];
     7         }
     8         int res = nums.length - k;
     9         for(int i = 0; i < nums.length; i++){
    10             nums[i] = temp[res];
    11             res++;
    12         }
    13     }
  • 相关阅读:
    redis集群登陆
    锁机制
    关系型数据库事务遵循ACID原则
    前端之Css
    Python之操作redis数据库
    前端之HTML
    Excel之批量改变特定字体颜色(转载)
    jmeter之批量修改请求路径
    Python之time模块
    Python之os模块
  • 原文地址:https://www.cnblogs.com/sherry900105/p/4299110.html
Copyright © 2011-2022 走看看