算法提高 6-9删除数组中的0元素
描述
编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接收数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。
输入时首先读入数组长度,再依次读入每个元素。
将调用此函数后得到的数组和函数返回值输出。
输入
输入描述:
输入样例:
7
2 0 4 3 0 0 5
输出
输出描述:
输出样例:
2 4 3 5
4
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();//数组长度
int[] arr = new int[num];
for (int i = 0; i < num; i++) {//存入数组的值
arr[i] = in.nextInt();
}
System.out.println(CompactIntegers(arr));
}
public static int CompactIntegers(int[] arr){
ArrayList<Integer> list = new ArrayList<>();
int count = 0;//记0的个数
for (int i:arr
) {
list.add(i);
if(i == 0) count++;
}
for (int i = 0; i < count; i++) {//删除0
list.remove(list.indexOf(0));
}
for (int i:list
) {
System.out.print(i+" ");//输出集合中剩余的值
}
System.out.println();//换行
return list.size();//返回集合的长度
}
}