leetcode Rotate Array

来源:互联网 发布:网络神兽 编辑:程序博客网 时间:2024/06/04 19:48

原题链接:https://leetcode.com/problems/rotate-array/

Description

Rotate an array of n elements to the right by k steps.

For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].

class Solution {public:    void Reverse(vector<int>& nums, int i, int j) {        for(; i < j; i++, j--) {            int ret = nums[i];            nums[i] = nums[j];            nums[j] = ret;        }    }    void rotate(vector<int>& nums, int k) {        size_t n = nums.size();        if (!n || !(k % n)) return;        k %= n;        Reverse(nums, 0, n - k -1);        Reverse(nums, n - k, n - 1);        Reverse(nums, 0, n - 1);    }};
0 0
原创粉丝点击