

LeetCode Hot 100:移动零
用 fast 扫描、slow 写入讲清移动零:原地保留非零元素顺序,尾部补零,并给出 JavaScript 实现。
本期讲 LeetCode Hot 100 里的「移动零」。这题要求在原数组中把所有
0 移到末尾,同时保持非零元素的相对顺序,适合用「扫描指针 + 写入指针」来处理。核心思路:
fast 从左到右扫描数组;遇到非零元素时,把它写到 slow 指向的位置,然后 slow 后移。扫描结束后,slow 左边就是稳定收集好的非零区,再把 slow 之后的位置补成 0。function moveZeroes(nums) {
let slow = 0;
for (let fast = 0; fast < nums.length; fast++) {
if (nums[fast] !== 0) {
nums[slow] = nums[fast];
slow++;
}
}
for (; slow < nums.length; slow++) {
nums[slow] = 0;
}
}时间复杂度是
O(n),额外空间复杂度是 O(1)。来源:
Related content
- Sign in to comment.
