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} <= numsi <= 2^{31} - 1 −231<=numsi<=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());
    }
};
相关推荐
zzz_236829 分钟前
【Java实习面试算法冲刺】图论
java·算法·面试
大鱼>37 分钟前
宠物监控数据安全与隐私保护:端到端加密与合规实践
人工智能·深度学习·算法·iot·宠物
被自己蠢哭43 分钟前
BFS广度优先搜索问题:#P00496. 华为od机试—自动泊车
算法
:-)44 分钟前
分支限界算法
算法
小肝一下1 小时前
2. 顺序表和链表
c语言·数据结构·c++·链表·dijkstra·依蕾娜·香香的依蕾娜
j7~1 小时前
【数据结构初阶】带头双向循环链表 (DSList) --增删查改完整实现详解
c语言·数据结构·链表·带头双向循环链表
大鱼>1 小时前
宠物行为识别AI算法详解:从数据采集到模型部署的完整方案
人工智能·深度学习·算法·宠物
石像鬼₧魂石1 小时前
贵州商会管理系统 —— 商协会数字化运营一站式平台
大数据·数据结构·物联网·eclipse·数据库架构
王莎莎-MinerU1 小时前
解析回归集:RAG 和 Agent 上线前,先把表格、公式、版面测清楚
人工智能·算法·数据挖掘·回归·pdf·ocr
Java面试题总结1 小时前
区间树:反向映射的前置数据结构
java·前端·数据结构