解题思路:
用两个指针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++;
}
}
}
本文详细介绍了零元素移动算法的解题思路与Java实现,通过双指针技巧优化数组处理效率,确保非零元素前移,零元素后置。
221

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



