D

当前:LC27 · 移除元素:原地删除 · 快慢指针 · 首次出现于 Day 1 · 路径:顶栏「56天打卡」→ 点击 LC 题号 → 逐题动画

正在加载 LC27 教学动画...
任务控制 HUD
Step 1 / 8
选取1 / 8
速度
正在加载 LC27 教学动画...
本步讲解 · 初始化指针
当前发生了什么

传送带上的箱子已就位。接下来 fast 从左到右逐个检查 nums[fast];slow 只在遇到要保留的元素时写入并前移。

为什么正确

「删除」不是把数组中间真的挖掉——只是把要保留的元素覆盖到数组前面,最后告诉调用者前 k 个有效。

面试怎么说

我用快慢指针原地改写:fast 扫描数组,遇到不等于目标值的元素就写到 slow 处并前移 slow;返回 slow 即新长度,时间 O(n)、空间 O(1)。