给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
示例 :
输入:[1,2,3,4,5,6,7]和 k = 3
输出:[5,6,7,1,2,3,4]解释:
向右旋转 1 步:[7,1,2,3,4,5,6]向右旋转 2 步:[6,7,1,2,3,4,5]
向右旋转 3 步:
[5,6,7,1,2,3,4]
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
void rotate(vector<int>& nums, int k) {
while(k--) {
int t = nums[nums.size() - 1];
for (int i = nums.size() - 1; i > 0; i--) {
nums[i] = nums[i - 1];
}
nums[0] = t;
}
}
};
int main()
{
vector<int> n = { -1,-100,3,99 };
Solution ans;
ans.rotate(n, 3);
for (int i = 0; i < n.size(); i++) {
cout << n[i] << " ";
}
system("pause");
}