记录一个双指针去除数组中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; }

 

posted @ 2023-03-22 10:50  vba是最好的语言  阅读(18)  评论(0编辑  收藏  举报