题目连接
https://leetcode.com/problems/rotate-array/
Rotate Array
Description
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].
class Solution {
public:
void Reverse(vector<int>& nums, int i, int j) {
for(; i < j; i++, j--) {
int ret = nums[i];
nums[i] = nums[j];
nums[j] = ret;
}
}
void rotate(vector<int>& nums, int k) {
size_t n = nums.size();
if (!n || !(k % n)) return;
k %= n;
Reverse(nums, 0, n - k -1);
Reverse(nums, n - k, n - 1);
Reverse(nums, 0, n - 1);
}
};