解题思路:
用两个指针i和j分别指向零和非零,当j指向非零的时候,交换两个指针所指向的数字,并且使i向前移动;而当j指向0的时候,i则不动;j每次循环都要向前移动;
如图:
Java:
public class Solution {
public void moveZeroes(int[] nums) {
int i = 0;
int j = 0;
while (j < nums.length) {
if (nums[j] != 0) {
if (j != i) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
i++;
}
j++;
}
}
}