Loading

189-旋转数组

旋转数组的大概意思就是:给定一个数组,将数组中的元素向右移动 个位置,其中 是非负数。

输入: [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 };
View Code

 

posted @ 2020-03-15 00:38  是凉城吖  阅读(144)  评论(0)    收藏  举报