【LeetCode刷题记录】189. 轮转数组

189 轮转数组

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

示例 1:
输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右轮转 1 步: [7,1,2,3,4,5,6]
向右轮转 2 步: [6,7,1,2,3,4,5]
向右轮转 3 步: [5,6,7,1,2,3,4]

示例 2:
输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释:
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]

提示:
1 < = n u m s . l e n g t h < = 1 0 5 1 <= nums.length <= 10^5 1<=nums.length<=105
− 2 31 < = n u m s [ i ] < = 2 31 − 1 -2^{31} <= nums[i] <= 2^{31} - 1 231<=nums[i]<=2311
0 < = k < = 1 0 5 0 <= k <= 10^5 0<=k<=105

进阶:
尽可能想出更多的解决方案,至少有 三种 不同的方法可以解决这个问题。
你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?

思路

本题利用数组翻转函数即可实现。
注意可能存在 k > n u m s . s i z e ( ) k>nums.size() k>nums.size() 的情况,故需要现将 k 进行取余操作。
首先将整个数组进行翻转,然后对前k个数进行翻转,最后对剩余部分进行翻转。

代码

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

相关推荐

  1. LeetCode记录189. 轮转数组

    2024-04-15 06:36:02       44 阅读
  2. 老卫带你学---leetcode(189. 轮转数组)

    2024-04-15 06:36:02       39 阅读
  3. Leetcode 189. 轮转数组

    2024-04-15 06:36:02       43 阅读
  4. Leetcode-189.轮转数组

    2024-04-15 06:36:02       38 阅读
  5. [leetcode] 189. 轮转数组

    2024-04-15 06:36:02       43 阅读
  6. Leetcode 189. 轮转数组

    2024-04-15 06:36:02       33 阅读
  7. leetcode-189 轮转数组

    2024-04-15 06:36:02       27 阅读
  8. LeetCode 189.轮转数组

    2024-04-15 06:36:02       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-15 06:36:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-15 06:36:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-15 06:36:02       82 阅读
  4. Python语言-面向对象

    2024-04-15 06:36:02       91 阅读

热门阅读

  1. C语言--内存函数

    2024-04-15 06:36:02       40 阅读
  2. Zookeeper+Kafka

    2024-04-15 06:36:02       37 阅读
  3. Flume配置案例@Source:Kafka,Channel:File,Sink:HDFS

    2024-04-15 06:36:02       31 阅读
  4. 计算机视觉(CV)技术的优势和挑战

    2024-04-15 06:36:02       33 阅读
  5. python课本基础练习——列表推导式

    2024-04-15 06:36:02       36 阅读
  6. 2024/4/12 网络编程day2

    2024-04-15 06:36:02       37 阅读
  7. 初识DOM

    初识DOM

    2024-04-15 06:36:02      37 阅读