189. 旋转数组

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

解法

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        int rotateSize = nums.size()-(k%nums.size());
        reverse(nums,0,rotateSize-1);
        reverse(nums,rotateSize,nums.size()-1);
        reverse(nums,0,nums.size()-1);
    }
    void reverse(vector<int>& nums,int start,int end){
        for(int i=start,j=end;i<j;i++,j--){
            int temp=nums[i];
            nums[i]=nums[j];
            nums[j]=temp;
        }
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
03-15 10:59
已编辑
爱写代码的菜code...:哎,自己当时拿到字节offer的时候也在感叹终于拿到了,自己当时最想去的企业就是字节,结果还是阴差阳错去了鹅厂。祝uu一切顺利!!!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务