[力扣 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);
    }
};
相关推荐
shehuiyuelaiyuehao1 分钟前
算法42,模拟算法,模拟z字形变换
算法
朝朝辞暮i4 分钟前
C++第一课
开发语言·c++·算法
橘子汽水16811 分钟前
Leetcode 208,207实现Trie前缀树,课程表
java·数据结构·算法·leetcode
hanlin0315 分钟前
刷题笔记:力扣第169题-多数元素
笔记·算法·leetcode
hfywmsj22 分钟前
广州餐饮铺位招租数据建模:基于多维评估体系的选址算法设计与实现
人工智能·算法·广州餐饮铺位招租
wabs66630 分钟前
关于二叉树【力扣116.填充每个节点的下一个右侧节点指针的思考】
数据结构·c++·算法·leetcode·二叉树·层序遍历
Nil20844 分钟前
leetcode 74搜索二维矩阵
算法·leetcode·矩阵
新知图书1 小时前
第 14 章 后训练算法GRPO详解与实战
人工智能·算法
shirsl3 小时前
算法 Day1-数组 / 哈希 + 双指针
python·算法·哈希算法
2601_9677607810 小时前
2026年PDF压缩与页码添加工具技术实测:性能、算法与本地化适配深度对比
算法·pdf