当前位置: 首页 > 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.dtcms.com/a/51048.html

相关文章:

  • ChatVLA:基于视觉-语言-动作模型的统一多模态理解与机器人控制
  • (2025)Unity调用DeepSeek API (兼容OpenAI SDK)
  • 在Windows实现将Docker Desktop安装至非系统盘(2025年3月测试有效)
  • Kmeans算法来实现RFM指标计算步骤
  • 算法 并查集
  • Axure原型模板与元件库APP交互设计素材(附资料)
  • Bitmap -> Bitmap安卓设备上的显示和内存
  • 汽车轮胎损伤缺陷分割数据集labelme格式1957张3类别
  • iOS安全和逆向系列教程 第1篇: iOS逆向工程概述与学习路线图
  • 第七章:项目实战 - 第四节 - Tailwind CSS 移动端适配实践
  • 计算机毕业设计SpringBoot+Vue.js装饰工程管理系统(源码+文档+PPT+讲解)
  • 算数操作符、赋值操作符、单目操作符、强制类型转换
  • 五、Redis 持久化:RDB 与 AOF 深入解析与优化策略
  • linux一些使用技巧
  • Rust 入门+语法详解+Windows 下 Cursor AI辅助开发
  • Linux中死锁问题的探讨
  • 【C语言】结构体自动对齐问题 解析与解决方案
  • Halcon 车牌识别-超精细教程
  • 第四章 STM32 Flash
  • Vue2 + Quill富文本编辑器
  • Netty笔记9:粘包半包
  • golang程序员如何3天完成python学习
  • 清理pip和conda缓存
  • Elasticsearch 限制索引大小与索引模板匹配冲突解决方案
  • 开源架构与人工智能的融合:开启技术新纪元
  • 单元测试与仿真程序之间的选择
  • 【计算机网络入门】初学计算机网络(十一)重要
  • EasyDSS视频推拉流/直播点播平台:Mysql数据库接口报错502处理方法
  • centos和ubuntu下安装redis
  • 【大模型基础_毛玉仁】1.1 基于统计方法的语言模型