189-旋转数组
旋转数组的大概意思就是:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
输入: [1,2,3,4,5,6,7] 和 k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右旋转 1 步: [7,1,2,3,4,5,6]
向右旋转 2 步: [6,7,1,2,3,4,5]
向右旋转 3 步: [5,6,7,1,2,3,4]
采用的方法:三次反转
我们只需要将所有元素反转,然后反转前 k 个元素,再反转后面l-k个元素,就能得到想要的结果。

1 class Solution { 2 public: 3 void rotate(vector<int>& nums, int k) { 4 int len=nums.size(); 5 reverse(nums.begin(),nums.end()); 6 reverse(nums.begin(),nums.begin()+k%len); 7 reverse(nums.begin()+k%len,nums.end()); 8 9 } 10 };
——世界上从来不乏优秀的人,我只是想接近他们一点。

浙公网安备 33010602011771号