正在加载 LC27 教学动画...
任务控制 HUD
Step 1 / 8
选取1 / 8
速度
正在加载 LC27 教学动画...
本步讲解 · 初始化指针
当前发生了什么
传送带上的箱子已就位。接下来 fast 从左到右逐个检查 nums[fast];slow 只在遇到要保留的元素时写入并前移。
为什么正确
「删除」不是把数组中间真的挖掉——只是把要保留的元素覆盖到数组前面,最后告诉调用者前 k 个有效。
面试怎么说
我用快慢指针原地改写:fast 扫描数组,遇到不等于目标值的元素就写到 slow 处并前移 slow;返回 slow 即新长度,时间 O(n)、空间 O(1)。