class Solution {
public:
void rotate(vector<int>& nums, int k) {
if( nums.empty() || (k %= nums.size()) == 0){
return;
}
int n = nums.size();
reverse(nums.begin(), nums.begin()+n-k);
reverse(nums.begin()+n-k, nums.end());
reverse(nums.begin(), nums.end());
return;
}
};
对于1234567,先旋转前n-k个数字,4321567,后旋转后k个数字,4321765,最后翻转整个数组即可,5671234。
需要注意的是对于begin的操作和翻转范围的确定。