您的位置:首页 > 其它

189. Rotate Array

2016-07-10 15:05 239 查看
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

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