[力扣 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);
    }
};
相关推荐
CoovallyAIHub5 分钟前
YOLOv8-SMOT:基于切片辅助训练与自适应运动关联的无人机视角小目标实时追踪框架
深度学习·算法·计算机视觉
CoovallyAIHub16 分钟前
全景式综述|多模态目标跟踪全面解析:方法、数据、挑战与未来
深度学习·算法·计算机视觉
像风一样自由202021 分钟前
五种算法详解(SVM / Logistic Regression / kNN / Random Forest / HistGradientBoosting)
算法·随机森林·支持向量机
一起努力啊~37 分钟前
算法题打卡力扣第34题:在排序数组中查找元素的第一个和最后一个位置(mid)
数据结构·算法·leetcode
晨曦5432101 小时前
图(Graph):关系网络的数学抽象
开发语言·算法·php
1白天的黑夜12 小时前
链表-143.重排链表-力扣(LeetCode)
数据结构·leetcode·链表
cwplh3 小时前
Manacher(马拉车算法)详解
算法
快去睡觉~9 小时前
力扣73:矩阵置零
算法·leetcode·矩阵
岁忧9 小时前
(nice!!!)(LeetCode 每日一题) 679. 24 点游戏 (深度优先搜索)
java·c++·leetcode·游戏·go·深度优先
小欣加油9 小时前
leetcode 3 无重复字符的最长子串
c++·算法·leetcode