给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时 保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0]
public static int[] moveZero(int[] nums) { //定义两个下标的索引 int index1=0; int index2=0; while(index2<nums.length) { if(nums[index2]!=0) { nums[index1]=nums[index2]; index1++; index2++; }else {//该位置的数组元素为0,直接让index2的位置往前走 index2++; } } //index1和index2相差的数字就是应该补齐的0的个数 for(int i=index1;i<nums.length;i++) { nums[i]=0; } return nums; } public static void main(String[] args) { int[] nums= {0,1,0,3,12,152,12,0,52,0}; //调用函数 int[] newNums=moveZero(nums); //打印函数 for(int i=0;i<nums.length;i++) { System.out.println(nums[i]); } }