给定一个数组,编写一个函数将所有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]+" ");
}
}
}