news 2026/7/4 20:00:04

【LeetCode Hot100】189.轮转数组-三种解法以及效果评估

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【LeetCode Hot100】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]

示例 2:
输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释:
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]

提示:
1 <= nums.length <= 105
-231 <= nums[i] <= 231 - 1
0 <= k <= 105

不管轮转几步会发现,数组总是像是被分成了左右两份,有一个断点的感觉

方法一(针对原数组去找那个断点)

从原数组找到断点之后,从断点开始往后push进新数组
然后再从原数组第一位开始push进新数组

varrotate=function(nums,k){constlen=nums.length;k=k%len;constnewArr=[];for(leti=len-k;i<len;i++){newArr.push(nums[i])}for(leti=0;i<len-k;i++){newArr.push(nums[i])}for(leti=0;i<len;i++){nums[i]=newArr[i]}};

效果评估:

  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

方法二(针对新数组去找那个断点)


原数组都是从第一位开始遍历,然后从新数组的断点位置开始push数据

varrotate=function(nums,k){constlen=nums.length;k=k%len;constnewArr=newArray(len);for(leti=0;i<len;i++){letidx=(i+k)%len;newArr[idx]=nums[i];}for(leti=0;i<len;i++){nums[i]=newArr[i];}};

效果评估:

  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

方法三

https://leetcode.cn/problems/rotate-array/solutions/551039/xuan-zhuan-shu-zu-by-leetcode-solution-nipk/?envType=study-plan-v2&envId=top-100-liked
力扣官方题解方法二:环状替换

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/30 23:27:13

【关于我创造了个“我”---这件小事】

事件起因&#xff1a; 工作业务常常多线紧急并行&#xff0c;总使我有种焦虑空虚&#xff0c;分身乏术的感觉&#xff1b; 契机&#xff1a; 3月份开始公司大力推广AI&#xff0c;研究了一下agent的构成之后&#xff0c;有了种创造一个替身的想法&#xff1b; 于是&#xff0c;…

作者头像 李华
网站建设 2026/6/30 23:24:47

北邮 AI无线通信 | 基于KNN的调制模式识别(3)依托于Jupyter Notebook对样本信号调制模式识别的仿真设计(modulation_recognition_module)

目录 一、什么是KNN 二、为什么要在OSI的物理层中引入KNN 三、基于KNN算法的调制识别技术建模 四、数据生成部分仿真设计 五、调制识别部分仿真设计 5.0、摘要及项目文件结构 5.0.1、摘要 5.0.2、项目文件结构 5.1、环境依赖 5.1.1、conda生态 5.1.2、anaconda的安装…

作者头像 李华
网站建设 2026/7/2 14:43:55

用 Go + Ollama 构建本地离线 RAG 知识库系统

# 用 Go Ollama 构建本地离线 RAG 知识库系统 ## 背景 大模型应用开发中&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;已成为最主流的知识增强方案。但云端 API 调用存在成本、隐私、稳定性等问题。本文将介绍如何用 Go 语…

作者头像 李华
网站建设 2026/6/30 23:22:42

DesktopNaotu:跨平台离线思维导图解决方案的三大核心价值

DesktopNaotu&#xff1a;跨平台离线思维导图解决方案的三大核心价值 【免费下载链接】DesktopNaotu 桌面版脑图 (百度脑图离线版&#xff0c;思维导图) 跨平台支持 Windows/Linux/Mac OS. (A cross-platform multilingual Mind Map Tool) 项目地址: https://gitcode.com/gh_…

作者头像 李华
网站建设 2026/6/30 23:21:58

公交实时监控、准点率、异常调度业务复盘

前言公交运营分为事前排班规划、事中实时管控两大阶段。排班仅完成静态运力分配&#xff0c;车辆实时监控、到站准点考核、突发异常动态调度才是调度人员每日核心工作内容&#xff0c;直接影响线路运营准点指标、市民公交出行体验&#xff0c;同时决定车队、司机月度运营考核结…

作者头像 李华