189.旋转数组

    科技2025-01-22  16

    旋转数组

    给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。

    class Solution { public: void reverse(vector<int>& nums,int start, int end){ while(start < end){ int temp = nums[start]; nums[start] = nums[end]; nums[end] = temp; start++; end--; } } void rotate(vector<int>& nums, int k) { int len = nums.size(); k = k % len; reverse(nums,0,len - 1); reverse(nums,0,k - 1); reverse(nums,k,len - 1); } };

    解析:将数组旋转三次、 第一次:全部旋转 第二次:从0 —— k-1 旋转 第三次:从k——len-1旋转 考虑的情况: 1.如果为空的话,对于算法没有影响 2.如果k <len需要注意,因为他其实旋转了 k - len个数所以需要取模。

    Processed: 0.009, SQL: 8