思路:使用双指针
(1)定义一个快指针和一个慢指针;
(2) 首先快指针寻找非零元素,将非零元素值赋值给慢指针所在位置的元素值进行交换,再更新快、慢指针;
代码如下:
class Solution {
public void moveZeroes(int[] nums) {
int slowIndex = 0;
int temp;
for(int fastIndex = 0; fastIndex < nums.length; fastIndex++) {
if(nums[fastIndex] != 0) {
temp = nums[slowIndex];
nums[slowIndex] = nums[fastIndex];
nums[fastIndex] = temp;
slowIndex++;
}
}
}
}