LeetCode热题100--189
189. 轮转数组题目链接题目描述给定一个整数数组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]解题思路关键点注意处理k可能大于数组长度的情况需要使用取模运算需要原地修改数组不能使用额外的数组虽然方法1和方法2用了额外空间但题目要求O(1)空间三种解法对比方法一双倍数组法voidrotate(vectorintnums,intk){intnnums.size();kk%n;// 处理k大于n的情况vectorintnums1(nums);// 复制原数组nums1.insert(nums1.end(),nums.begin(),nums.end());// 拼接两份nums.clear();nums.insert(nums.begin(),nums1.begin()n-k,nums1.begin()2*n-k);}思路解析先把原数组复制一份然后拼接到自己后面从新数组的n-k位置开始取n个元素用这个子数组替换原数组示例nums [1,2,3,4,5], k2, n5 nums1 [1,2,3,4,5,1,2,3,4,5] 从位置 n-k3 开始取5个nums1[3]4, [4]5, [5]1, [6]2, [7]3 结果[4,5,1,2,3]复杂度时间复杂度O(n)需要遍历数组空间复杂度O(n)需要额外的数组空间方法二额外数组法voidrotate(vectorintnums,intk){intnnums.size();vectorintnums1(n);for(inti0;in;i){nums1[(ik)%n]nums[i];}nums.assign(nums1.begin(),nums1.end());}思路解析创建一个和原数组同样大小的新数组遍历原数组将每个元素放到新数组的(ik)%n位置用新数组替换原数组示例nums [1,2,3,4,5], k2, n5 i0: nums1[(02)%52] 1 → nums1[2]1 i1: nums1[(12)%53] 2 → nums1[3]2 i2: nums1[(22)%54] 3 → nums1[4]3 i3: nums1[(32)%50] 4 → nums1[0]4 i4: nums1[(42)%51] 5 → nums1[1]5 nums1 [4,5,1,2,3]复杂度时间复杂度O(n)需要遍历数组空间复杂度O(n)需要额外的数组空间方法三三次反转法最优解voidrotate(vectorintnums,intk){intnnums.size();kk%n;reverse(nums.begin(),nums.end());// 反转整个数组reverse(nums.begin(),nums.begin()k);// 反转前k个reverse(nums.begin()k,nums.end());// 反转剩下的}思路解析先反转整个数组再反转前k个元素最后反转剩下的n-k个元素示例nums [1,2,3,4,5], k2, n5 1. 整体反转: [5,4,3,2,1] 2. 反转前k2个: [4,5,3,2,1] 3. 反转剩下的n-k3个: [4,5,1,2,3]数学原理向右旋转k位相当于把后k个元素移到前面。通过三次反转可以巧妙地实现这个操作整体反转把末尾元素放到开头反转前k个恢复被反转的尾部顺序反转剩下的恢复被反转的头部顺序复杂度时间复杂度O(n)三次反转操作空间复杂度O(1)原地修改不需要额外空间总结对比方法时间复杂度空间复杂度优点缺点双倍数组法O(n)O(n)思路直观容易理解需要额外O(n)空间额外数组法O(n)O(n)逻辑简单清晰需要额外O(n)空间三次反转法O(n)O(1)最优解原地修改需要理解反转原理注意事项必须处理k n的情况通过k k % n取模题目要求原地修改但有些方法用了额外空间三种方法都要掌握但面试时尽量用第三种

相关新闻

给热图矩形加个标注--在线绘制带任意文字、符号标注的热图

给热图矩形加个标注--在线绘制带任意文字、符号标注的热图

导读:在聚类热图中,除了颜色编码外,添加文本信息可以提供更精确的数据解释。例如直接在热图的方块内标注p值显著性,从而使得数据的显著性水平一目了然,有助于研究者更快速、准确地理解数据背后的含义。 《Cancer Cell》…

2026/5/17 11:55:30 阅读更多 →
量化手感变化:Contactile触觉夹爪GAL2助力奢品检测与精密装配升级

量化手感变化:Contactile触觉夹爪GAL2助力奢品检测与精密装配升级

一款奢侈品手袋的金属扣件,在长期使用后,其开合手感的变化能否被测量?这个关于品质的问题,恰好可以用来阐释机器人触觉传感技术的一项进展。 本文将通过这个具体案例,介绍Contactile触觉夹爪GAL2如何获取并利用触觉数…

2026/5/17 11:55:30 阅读更多 →
智捷云物联网平台:打造快捷、智能、高效的物联网解决方案

智捷云物联网平台:打造快捷、智能、高效的物联网解决方案

前言 随着物联网技术的快速发展,越来越多的企业需要构建自己的物联网平台来管理设备、处理数据、实现可视化监控。今天给大家推荐一个功能强大、稳定可靠的物联网平台——智捷云物联网平台。 什么是智捷云物联网平台? 智捷云物联网平台是贵州智捷云科…

2026/5/17 11:55:28 阅读更多 →

最新新闻

【皇榜科技线路板质量课堂·第30篇】散布图(Scatter Plot):压合温度与剥离强度的关系,看图说话

【皇榜科技线路板质量课堂·第30篇】散布图(Scatter Plot):压合温度与剥离强度的关系,看图说话

一、一个让人挠头的问题皇榜科技的压合车间,最近遇到一个怪事。工艺工程师老何发现,同一款FPC、同一台压机、同一个操作员,压合出来的板子剥离强度时高时低。高的有1.2N/mm,低的只有0.6N/mm,而客户要求不低于0.8N/mm。…

2026/7/4 4:24:10 阅读更多 →
Qt/QML音视频文件原始十六进制查看器

Qt/QML音视频文件原始十六进制查看器

前言 在做音视频工具时,很多问题只看 FFmpeg 解析后的字段并不够。比如: MP4 的 ftyp、moov、mdat 到底在文件哪个位置;WAV/AVI 的 RIFF、fmt 、data 块大小是否正确;某段元数据、魔数或 ASCII 字符串是否真的存在于原始文件里&am…

2026/7/4 4:22:09 阅读更多 →
【安心陪诊 Agent】从 Web Demo 到 HAP 真机:安心陪诊 Agent 的工程落地路线

【安心陪诊 Agent】从 Web Demo 到 HAP 真机:安心陪诊 Agent 的工程落地路线

应用名称:安心陪诊 Agent 统一合集:安心陪诊 Agent|HarmonyOS 高校创新赛 关键词标签:harmonyos / AI Agent / 医疗陪诊从 Web Demo 到 HAP 真机:安心陪诊 Agent 的工程落地路线摘要:规划从当前 Web 原型到…

2026/7/4 4:22:09 阅读更多 →
查询服务器RAID卡-lspci命令

查询服务器RAID卡-lspci命令

说明 老服务器使用sas卡,需要lspci 工具查询 安装工具 yum install -y pciutils查询RAID卡型号 lspci | grep -i "raid\|sas"03:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS 2208 [Thunderbolt] (rev 05)

2026/7/4 4:20:09 阅读更多 →
AI 工具开发实战(2):开发一个本地 RAG 知识库——丢一个文件夹进去,直接问答

AI 工具开发实战(2):开发一个本地 RAG 知识库——丢一个文件夹进去,直接问答

AI 工具开发实战(2):开发一个本地 RAG 知识库——丢一个文件夹进去,直接问答 上一篇做了一个命令行翻译工具,这篇做一个更实用的:本地 RAG 知识库。 把 PDF、Markdown、TXT 文件丢到一个文件夹里&#xf…

2026/7/4 4:18:08 阅读更多 →
基于CNN卷积神经网络手写汉字识别系统 (GUI界面)【源码38期】

基于CNN卷积神经网络手写汉字识别系统 (GUI界面)【源码38期】

一、项目简介本系统基于MATLAB深度学习工具箱,设计并实现了一个基于卷积神经网络(CNN)的手写汉字识别系统。系统包含三大核心模块:网络结构定义模块(get_self_net.m)封装了CNN网络构建函数,采用…

2026/7/4 4:16:08 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻