题目链接

算法思想
算法思想:定义两个指针 i,j【0,i】指针之前的表示处理过的元素,【0,j】指针之前表示非零的处理过的元素,i指针遍历数组,不断缩小i指针之后的区域,直至遍历完毕,表示处理完所有的元素,【i,j】区域表示所有的零。
解题步骤
初始化 i=0; j=-1;
遍历数组
当i位置的元素为非0时 j++; swap(nums[i],nums[j]); i++;
当i位置的元素为0时 i++;







代码演示
class Solution {
public void moveZeroes(int[] nums) {
int i = 0;
int j = -1;
for (; i < nums.length;) {
if (nums[i] == 0) {
i++;
} else {
j++;
int temp = nums[j];
nums[j] = nums[i];
nums[i] = temp;
i++;
}
}
}
}

1524

被折叠的 条评论
为什么被折叠?



