记录一个双指针去除数组中0
public static int[] SF(int[] Arr) { if(Arr == null || Arr.Length <= 0) return Arr; int j = 0;
// j最终停在第一个应该为0的位置上 j++
for(int i=0;i<Arr.Length;i++) {
// 保证不为0的数字,相对位置不变 if(Arr[i] != 0){ Arr[j++] = Arr[i]; } }
// 根据0的个数,后续位置的数置0 for(int i=j;i<Arr.Length;i++) { Arr[i] = 0; } return Arr; }