[力扣 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);
    }
};
相关推荐
人工智能培训1 分钟前
具身智能:让人工智能拥有物理世界感知能力
大数据·人工智能·学习·算法·机器学习
果壳science2 分钟前
张祥前最新研究成果登上SCI期刊!
笔记·嵌入式硬件·算法·硬件工程·几何学
Rabitebla3 分钟前
【Linux 底层原理】工具篇(一):掌握 Ubuntu apt,让软件安装与管理更简单
linux·笔记·算法·ubuntu
碧海银沙音频科技研究院31 分钟前
基于炬芯ATS308X的DNN全连接神经网络手写数字识别系统设计
人工智能·深度学习·算法
文丑颜不良啊38 分钟前
LeetCode601~625题目解析
java·leetcode
stolentime1 小时前
SOS DP学习笔记
c++·笔记·学习·算法·贪心算法·动态规划·二进制
文丑颜不良啊1 小时前
LeetCode651~675题目解析
java·leetcode
水母量化1 小时前
量化收益率计算别混用:算术均值、几何均值与对数收益
算法·均值算法·量化交易
Xin7701 小时前
LeetCode 78. 子集(回溯法)
leetcode
xunberg1 小时前
【生命科学 Agent】推理平台(三)
算法·程序员·架构