给定一个数组
nums
,编写一个函数将所有0
移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入:[0,1,0,3,12]
输出:[1,3,12,0,0]
count
用于计数数组中不为 0 的元素个数count
位nums.length - count
位置为 0.
public void moveZeroes(int[] nums) {
// 计数不为零的元素个数
int count = 0;
// 遍历数组,将不为 0 的存入数组前 count 位
for (int item : nums) {
if (item != 0) {
nums[count++] = item;
}
}
// 将剩下的 num.length - count 位置为 0
for (int i = count; i < nums.length; i++) {
nums[i] = 0;
}
}