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

【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.kler.cn/a/571413.html

相关文章:

  • 从零开始学习Slam--数学概念
  • 《Operating System Concepts》阅读笔记:p180-p187
  • 蓝桥杯 2020 国赛 阶乘约数
  • 自学微信小程序的第十天
  • [liorf_localization_imuPreintegration-2] process has died
  • python全栈-Linux基础
  • 【Linux】进程信号——信号保存和信号捕捉
  • 【大模型】什么是蒸馏版大模型
  • 【零基础到精通Java合集】第二十三集:G1收集器深度解析
  • 鸿蒙5.0实战案例:基于ArkUI的透明页面效果
  • BambuStudio学习笔记:GCode 类
  • 15款单色颗粒渐变扭曲抽象艺术背景图AI/PSD格式设计素材 Abstract Grainy Gradient Background
  • CubeMX创建STM32F407工程
  • DeepSeek未来发展趋势:开创智能时代的新风口
  • Ubuntu20.04双系统安装及软件安装(十三):录屏软件kazam
  • wpa_supplicant源码剖析-main.c解析
  • 【微知】如何通过mlxlink查看Mellanox网卡和光模块相关的信息?( mlxlink -d 01:00.0 -m)
  • 拥抱健康养生,开启活力生活
  • 智慧园区大数据云平台建设总体方案,平台方案架构-智慧园区大数据平台(320页原件Word)
  • Windows 11【1001问】查看Windows 11登录用户的18种方法