https://leetcode.com/problems/move-zeroes/
一開始想複雜了,還用雙指針
其實很簡單,先遍歷一遍,用一個自增的指針,指向下一個非0數擺放的位置。遍歷完了之後,非0的數都擺到前面了,解決後面全部改成0就完事了。
class Solution {
public void moveZeroes(int[] nums) {
if (nums == null || nums.length == 0) {
return;
}
int place = 0;
for (int val : nums) {
if (val != 0) {
nums[place++] = val;
}
}
for (int i = place; i < nums.length; i++) {
nums[i] = 0;
}
}
}