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/7/4 4:26:24 阅读更多 →
量化手感变化:Contactile触觉夹爪GAL2助力奢品检测与精密装配升级

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

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

2026/7/4 4:42:26 阅读更多 →
智捷云物联网平台:打造快捷、智能、高效的物联网解决方案

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

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

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

最新新闻

CANN/ge ES API生成CMake指南

CANN/ge ES API生成CMake指南

add_es_library Usage Guide 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch…

2026/7/4 5:28:32 阅读更多 →
Mermaid Live Editor:免费在线图表编辑器的完整指南,5分钟快速上手

Mermaid Live Editor:免费在线图表编辑器的完整指南,5分钟快速上手

Mermaid Live Editor:免费在线图表编辑器的完整指南,5分钟快速上手 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending…

2026/7/4 5:28:32 阅读更多 →
深度解析:AnythingLLM如何通过双引擎架构实现PDF文档的智能解析

深度解析:AnythingLLM如何通过双引擎架构实现PDF文档的智能解析

深度解析:AnythingLLM如何通过双引擎架构实现PDF文档的智能解析 【免费下载链接】anything-llm Stop renting your intelligence. Own it with AnythingLLM. Everything you need for a powerful local-first agent experience 项目地址: https://gitcode.com/Gi…

2026/7/4 5:28:32 阅读更多 →
HsMod:炉石传说终极功能增强插件完全指南

HsMod:炉石传说终极功能增强插件完全指南

HsMod:炉石传说终极功能增强插件完全指南 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod是一款基于BepInEx框架开发的炉石传说功能增强插件,为玩家提供超过50…

2026/7/4 5:26:32 阅读更多 →
炉石传说插件HsMod:55项功能彻底改变你的游戏体验

炉石传说插件HsMod:55项功能彻底改变你的游戏体验

炉石传说插件HsMod:55项功能彻底改变你的游戏体验 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 你是否厌倦了炉石传说中漫长的开包动画?是否希望跳过那些重复的日…

2026/7/4 5:26:32 阅读更多 →
StudioPlugins中文汉化:官方中文语言包插件安装与配置

StudioPlugins中文汉化:官方中文语言包插件安装与配置

StudioPlugins中文汉化:官方中文语言包插件安装与配置 【免费下载链接】StudioPlugins Android Studio 精品插件合集,不在于多只在于精 项目地址: https://gitcode.com/gh_mirrors/st/StudioPlugins StudioPlugins是Android Studio精品插件合集&a…

2026/7/4 5:26:32 阅读更多 →

日新闻

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 阅读更多 →

周新闻

月新闻