您的位置:首页 > 其它

leetcode--Rotate Array

2016-05-06 13:17 316 查看
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.

旋转数组:注意里面的k是从右往左数第几个。使用的放大是三步旋转方法。

public class Solution {
public void rotate(int[] nums, int k) {
if (nums.length == 0) {
return;
}
k = k % nums.length;
reverse(nums,0,nums.length-1-k);
reverse(nums,nums.length-k,nums.length-1);
reverse(nums,0,nums.length-1);
}

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