189. Rotate Array LeetCode

来源:互联网 发布:中等收入陷阱 书籍知乎 编辑:程序博客网 时间:2024/04/30 04:03

题意:旋转数组?给出n个元素的数组,往右平移k个单位。求旋转后的数组。
题解:巧妙的做法,把1到 n - k 元素先翻转,把n - k + 1 到 n 元素翻转。然后翻转整个数组就可以。不懂的可以自己拿纸画一画。

class Solution {public:    void rotate(vector<int>& nums, int k) {        int n = nums.size();        k = k % n;        reverse(nums.begin(),nums.begin() + n - k);        reverse(nums.begin() + n - k,nums.begin() + n);        reverse(nums.begin(),nums.begin() + n);    }};
0 0
原创粉丝点击