283.移动零
题目
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例: > 输入: [0,1,0,3,12] > 输出: [1,3,12,0,0]
说明: - 必须在原数组上操作,不能拷贝额外的数组。 - 尽量减少操作次数。
思路
既然要求在原数组上操作,并且要尽量减少操作,那说明就应该在一趟扫描中解决问题.
题目想要的是将0移到数组末尾,一个思路是在一趟扫描中,只要遇到0,就用后面不是0的数覆盖到这个0,覆盖完了之后,将数组后面的数字都设置成0.
代码
1 | public void MoveZeroes(int[] nums) |