为了能到远方,脚下的每一步都不能少.|

TranquilGlow

园龄:2年7个月粉丝:1关注:0

2023-07-08 19:55阅读: 9评论: 0推荐: 0

leecode283移动零——手写详解

代码

手写详解

DMEJ)1VO5%43R80U

第一次错误

    public static void moveZeroes(int[] nums) {
        int length = nums.length;
        int fast,low=0;//双指针法
        for(fast=0;fast<length;fast++){
            //fast循环去找非零元素
            if(nums[fast]!=0){
                nums[low]=nums[fast];
                nums[fast]=0;   //这样的话不行,人家杠赋值完,你又清零了怎么可以呢
                low++;
            }
        }
    }
}

错误原因

nums[fast]=0;   //这样的话不行,人家杠赋值完,你又清零了怎么可以呢

第二次成功

双指针法

package 数组;
import java.util.Scanner;
public class 移动零283 {
    public static void main(String[] args) {
        int n;
        Scanner input = new Scanner(System.in);
        System.out.println("请输入数组的长度");
        n=input.nextInt();
        int[] num = new int[n];
        System.out.println("输入数组的元素");
        for (int i = 0; i < num.length; i++) {
            num[i]= input.nextInt();
        }
        moveZeroes(num);
        for (int i = 0; i < num.length; i++) {
            System.out.println(num[i]);
        }
    }
    public static void moveZeroes(int[] nums) {
        int length = nums.length;
        int fast,low=0;//双指针法
        for(fast=0;fast<length;fast++){
            //fast循环去找非零元素
            if(nums[fast]!=0){
                nums[low]=nums[fast];
                //nums[fast]=0;   这样的话不行,人家杠赋值完,你又清零了怎么可以呢
                low++;
            }
        }
        for(fast = low;fast<nums.length;fast++){
            nums[fast]=0;
        }
    }
}

本文作者:TranquilGlow

本文链接:https://www.cnblogs.com/xuehaiqiule/p/17621643.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   TranquilGlow  阅读(9)  评论(0编辑  收藏  举报  
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起