*LEEDCODE 189轮转数组

*LEEDCODE 189轮转数组_第1张图片

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        // k = k % nums.size();
        // for(int i = 0; i < k; i++)
        // {
        //     int tmp = nums[nums.size() - 1];;
        //     for( int j = nums.size() - 2; j >= 0; j--)
        //         nums[j + 1] = nums[j];
        //     nums[0] = tmp;
        // }

        int a[nums.size()];
        k = k % nums.size();
        for(int i = 0; i < nums.size(); i++)
        {
            a[(i + k) % nums.size()] = nums[i];
        }
        for(int i = 0; i < nums.size(); i++)
        {
            nums[i] = a[i];
        }

    }
};

*LEEDCODE 189轮转数组_第2张图片
1 轮转 -> (n+k) % len
2 赋值回去

创数组
tmp (几遍?总共要移动的元素数
翻转

你可能感兴趣的:(算法,数据结构)