给定一个数组,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序

给定一个数组,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。(实现即可,尽量减少操作次数)(10分)
实例:示例:输入:[0,1,0,3,2]
输出:[1,3,2,0,0]
说明:必须在原数组上操作,不能拷贝额外的数组。

package com.msfh.news;

import java.util.Scanner;

public class Test03 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int nums[] = new int[5];
		for (int i = 0; i < nums.length; i++) {
			nums[i] = sc.nextInt();
		}
		int num=0;//用来计算0的个数
        for(int i=0;i<nums.length;i++){
            if(nums[i]==0){//如果nums[i]=0,zeroNum个数加一
                num++;
            }else if(num!=0){//如果nums[i]不等于0,将nums[i]跟前zeroNum个交换,并且将nums[i]赋值为0
                nums[i-num]=nums[i];  
                nums[i]=0;
            }
        }
        for (int i = 0; i < nums.length; i++) {
			System.out.print(nums[i]+" ");
		}
	}
}
发布了42 篇原创文章 · 获赞 73 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_34037264/article/details/102930008