您的位置:首页 > 其它

189. Rotate Array

2016-03-21 10:24 399 查看
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]

Related problem: Reverse Words in a String II

Credits:

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

Subscribe to see which companies asked this question

public class Solution {
public  void rotate(int[] nums, int k) {
int length = nums.length;

k = k % length;

if(length == 1)
return;

if(k == 0)
return;

reversal(nums, 0, length - k - 1);
reversal(nums, length -k, length - 1);
reversal(nums, 0, length - 1);
}

public  void reversal(int[] nums, int i, int j){
int t = 0;
while(i < j  && i >= 0){
t       = nums[i];
nums[i] = nums[j];
nums[j] = t;
i++;
j--;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: