class Solution {
public:
void rotate(vector<int>& nums, int k) {
if(nums.empty()) return;
k %= nums.size();
rotate(nums, 0, nums.size()-1-k);
rotate(nums, nums.size()-k, nums.size()-1);
rotate(nums, 0, nums.size()-1);
}
void rotate(vector<int> &nums, int left, int right){
while(left < right) swap(nums[left++], nums[right--]);
}
};