天天看点

刷题-Leetcode-189. 旋转数组189. 旋转数组

189. 旋转数组

题目链接

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/rotate-array/solution/xuan-zhuan-shu-zu-by-leetcode-solution-nipk/

题目描述

刷题-Leetcode-189. 旋转数组189. 旋转数组

题目分析

  1. 反转

    第一步 整个反转

    第二步 反转前k个

    第三步 反转后面的

    注意 k大于n的情况

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        int n = nums.size();
        k = k % n; // 避免k>n
        reverse(nums.begin(), nums.end());
        reverse(nums.begin(), nums.begin() + k);
        reverse(nums.begin() + k, nums.end());
    }
};