当前位置: 首页 > news >正文

【leetcode hot 100 189】轮转数组

错误解法一:申请一个数组,第i个数放在新数组的i+ki+k-nums.length

class Solution {public void rotate(int[] nums, int k) {int[] results=new int[nums.length];for(int i=0; i<nums.length; i++){if(i+k<nums.length){results[i+k] = nums[i];}else{results[i+k-nums.length] = nums[i];}}for(int i=0; i<nums.length; i++){nums[i] = results[i];}}
}

错误原因:未考虑旋转次数>数组大小

在这里插入图片描述

错误解法二:进行k次旋转,每一次保存最后一个数,所有数往后移后,将保存的数放在第一位

class Solution {public void rotate(int[] nums, int k) {int i=0;while(i<k){// 第i+1次旋转int last=nums[nums.length-1];for(int j=nums.length-1;j>0;j--){nums[j]=nums[j-1];}nums[0]=last;i++;}}
}

错误原因:超出时间限制

在这里插入图片描述

解法一:(改进错误解法一)第i个数放在新数组的i+k(i+k)%nums.length

class Solution {public void rotate(int[] nums, int k) {int[] results=new int[nums.length];for(int i=0; i<nums.length; i++){if(i+k<nums.length){results[i+k] = nums[i];}else{results[(i+k)%nums.length] = nums[i];}}for(int i=0; i<nums.length; i++){nums[i] = results[i];}}
}
http://www.lryc.cn/news/546789.html

相关文章:

  • 医药行业哪些招聘管理系统有AI功能?
  • .net8 使用 license 证书授权案例解析
  • golang的io
  • 全向广播扬声器在油气田中的关键应用 全方位守护安全
  • 76.读取计时器运行时间 C#例子 WPF例子
  • 嵌入式开发:傅里叶变换(5):基于STM32,实现CMSIS中的DSP库
  • 探秘基带算法:从原理到5G时代的通信变革【六】CRC 校验
  • MySQL——DQL、多表设计
  • XML 编辑器:全面指南与最佳实践
  • 【USRP】NVIDIA Sionna:用于 6G 物理层研究的开源库
  • DeepSeek开源周Day6:DeepSeek V3、R1 推理系统深度解析,技术突破与行业启示
  • intra-mart实现logicDesigner与forma联动
  • 《大语言模型的原理发展与应用》:此文为AI自动生成
  • 生态安全相关
  • DeepSeek-R1国产化系统gpu驱动+cuda+ollama+webui可视化离线私有化部署
  • 数据集/API 笔记:新加坡风速 API
  • transformer架构解析{掩码,(自)注意力机制,多头(自)注意力机制}(含代码)-3
  • 【C++】switch 语句编译报错:error: jump to case label
  • linux中使用firewall命令操作端口
  • C++第六节:stack和queue
  • 算法 并查集
  • yarn application命令中各参数的详细解释
  • 算法之数据结构
  • Android 图片压缩详解
  • 迷你世界脚本计时器接口:MiniTimer
  • JavaScript的变量以及数据类型
  • 私有云基础架构
  • 在 Windows 和 Linux 系统上安装和部署 Ollama
  • 从零开始学习Slam--数学概念
  • 【零基础到精通Java合集】第十五集:Map集合框架与泛型