189-旋转数组
时间:2020-03-15 10:13:27
收藏:0
阅读:63
旋转数组的大概意思就是:给定一个数组,将数组中的元素向右移动 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 };
原文:https://www.cnblogs.com/nxnslc-blog/p/12495502.html
评论(0)