[力扣 Hot100]Day15 轮转数组

题目描述

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

思路

好像是某一年的考研题,原地逆序后k项,再逆序前n-k项,再逆序整个数组即可。空间复杂度O(1),时间复杂度O(n)。要注意k可能比n大,需要对n取余。

代码

cpp 复制代码
class Solution {
private:
    void reverse(vector<int>& nums, int left, int right){
        int t;
        while (left<right)
        {
            t=nums[left];
            nums[left]=nums[right];
            nums[right]=t;
            left++;right--;
        }
        
    }
public:
    void rotate(vector<int>& nums, int k) {
        int n=nums.size();
        k=k%nums.size();
        if(k==n)return;
        reverse(nums, n-k, n-1);
        reverse(nums, 0, n-k-1);
        reverse(nums, 0, n-1);
    }
};
相关推荐
程序员小崔日记9 分钟前
一道KMP统考真题彻底讲透:nextval与滑动距离的本质
算法·408·王道计算机考研
xiaoye-duck9 分钟前
《算法题讲解指南:动态规划算法--路径问题》--9.最小路径和,10.地下城游戏
c++·算法·动态规划
渡过晚枫18 分钟前
[第十四届蓝桥杯/java/算法]国赛A——跑步计划
算法
hanlin0321 分钟前
刷题笔记:力扣第17题-电话号码的字母组合
笔记·算法·leetcode
不是株32 分钟前
算 法
数据结构·python·算法
云泽80833 分钟前
蓝桥杯算法精讲:从宏观角度重新认识递归
算法·职场和发展·蓝桥杯
自信1504130575934 分钟前
插入排序算法
c语言·数据结构·算法·排序算法
阿Y加油吧39 分钟前
力扣打卡day09——缺失的第一个正数、矩阵置零
数据结构·算法·leetcode
2301_8184190139 分钟前
C++中的状态模式实战
开发语言·c++·算法
仰泳的熊猫40 分钟前
题目2576:蓝桥杯2020年第十一届省赛真题-解码
数据结构·c++·算法·蓝桥杯