AC 通過
public class LeetCode283 {
public void moveZeroes(int[] nums) {
int k = 0; // nums[0-k] 存儲的是 前面k 個不等於 0 的數
for(int i = 0; i < nums.length; i++){
if(nums[i]!=0){
if (k != i) {
// 0 1 2 0 當遍歷 到1 時 k 還是0 0 1 交換後是 1 0 此時 k =1
int tmp = nums[i];
nums[i] = nums[k];
nums[k] = tmp;
} else {
k++;
}
}
}
}
/**
* @param i
* @param j
*/
private void swap(int i, int j) {
int tmp = i;
i = j;
j = tmp;
}
/**
* @param args
*/
public static void main(String[] args) {
int[] nums = new int[]{0,1,0,3,12};
new LeetCode283().moveZeroes(nums);
for(int i = 0; i < nums.length;i++){
System.out.print(nums[i]+" ");
}
}
}