题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

image.png
解题思路:从头到尾遍历数组,发现不为0的元素,将其移动到数组前边,最后将后面的元素全部置为零即可。

class Solution {

public void moveZeroes(int[] nums) {

int index=0;

//将不为0的元素放到数组前面

for(int i=0;i<nums.length;i++){

if(nums[i]!=0){

nums[index]=nums[i]; //若数组中元素不为0,将其放到index位置上来

index++;

}

}

//将剩下的所有元素置0

for(int i=index;i<nums.length;i++){

nums[i]=0;

}

}

}