Last updated 5 years ago
Was this helpful?
很经典的题目,最开始的时候一直没打开思路,老想用 swap 去做。但是一旦 swap,顺序就会乱的
这个思路的新奇之处就是,通过赋值而不是 swap 来“移动”元素。
count 用来计数,做过多少个非零的数字,最后再把剩下的数字用 0 走完
public class Solution { public void moveZeroes(int[] nums) { int count = 0; for (int i = 0; i < nums.length; i++) { if (nums[i] != 0) { nums[count++] = nums[i]; } } while (count < nums.length) { nums[count++] = 0; } } }