不管哪种方法,都要记得对K进行取余处理。
将数组以k位为分界线,将数组分为两部分,对前一部分、后一部分、整个数组分别翻转一次,即为解。 T: o(n) S: o(1)
class Solution
{public:void rotate(vector<int> &nums, int k){int n = nums.size();k %= n;reverse(nums.begin(), nums.end() - k);reverse(nums.end() - k, nums.end());reverse(nums.begin(), nums.end());}
};