LeetCode热题100 轮转数组

题目描述

给定一个整数数组 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 < = 10 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]<=231−1
0 < = k < = 10 5 0 <= k <= 10^5 0<=k<=105

思路

进行三次翻转即可。

代码

cpp 复制代码
class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        k %= nums.size();
        reverse(nums.begin(), nums.end());
    	reverse(nums.begin(), nums.begin() + k);
    	reverse(nums.begin() + k, nums.end());
    }
};
相关推荐
ShineWinsu1 小时前
对于stack和queue经典算法题目:155. 最小栈、JZ31 栈的压入、弹出序列和102. 二叉树的层序遍历的解析
数据结构·c++·算法·面试·力扣·笔试·牛客网
能源系统预测和优化研究2 小时前
【原创改进代码】考虑电动汽车移动储能特性的多区域电网功率波动平抑优化调控
大数据·算法·能源
_F_y2 小时前
两个数组的动态规划
算法·动态规划
每天要多喝水2 小时前
动态规划Day32:最长公共子序列
算法·动态规划
骇城迷影2 小时前
代码随想录:栈和队列篇
java·服务器·算法
2401_858286112 小时前
OS54.【Linux】System V 共享内存(3) “共享内存+管道“修bug记录
linux·运维·服务器·算法·bug
小付同学呀2 小时前
C语言学习(二)——C语言数据类型
数据结构·算法
流云鹤2 小时前
牛客周赛Round 131
算法
方便面不加香菜2 小时前
数据结构--排序
数据结构