题目
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].
代码
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char const *argv[]) {
int nums[]={1,2,3,4,5,6,7};
int n=7;
int k=3;
k %= n;
if (k) {
std::vector<int> v(nums, nums + n);
std::copy(v.begin() + n - k, v.end(), nums);
std::copy(v.begin(), v.begin() + n - k, nums+k);
}
for (int i = 0; i < n; ++i) {
cout<<nums[i]<<",";
}
return 0;
}