面试经典(2/150)移除元素

面试经典(2/150)移除元素

python 复制代码
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

思路:使用双指针

遍历数组,当前值不是要移除的元素时

将值赋给用来记录的指针,并将慢指针加1

快指针加1

python 复制代码
class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        a = 0#移动指针
        b = 0#记录指针

        while a < len(nums):#遍历数组
            if nums[a] != val:#如果当前值不是指定值
                nums[b] = nums[a]#将当前值赋给记录指针,不用考虑新长度后边的元素
                b += 1
            a += 1
        return b

参考链接:https://leetcode.cn/problems/remove-element/description/?envType=study-plan-v2&envId=top-interview-150

相关推荐
前端 贾公子4 小时前
LangGraph == 图的状态(State)管理 (中)
开发语言·数据库·python
the局外人5 小时前
FastAPI中jwt的基本使用与实践
后端·python·fastapi
mklpo1475 小时前
为不支持sse4.2命令集的老旧设备制作Win11 26H2系统镜像,2026-10-11。
运维·windows·python
GoldenSpider.AI5 小时前
用 AI 改流程之前先做「四桶」体检:9 次返工里 8 次靠规则就能消掉(附 Python 发布前校验器)
人工智能·python·自动化·ai智能体
小白快快跑哦5 小时前
python-字符串全解(六):正则表达式-修饰符
python·正则表达式·修饰符
niucloud-admin6 小时前
JAVA V6 多商户商城 开发文档——项目启动
java·开发语言·python
CCIE-Yasuo6 小时前
个人电脑搭建AI-Qwen3-8B-学习记录
人工智能·python·学习
小猴子爱上树6 小时前
跨马翻译:批量图片翻译+视频字幕+智能抠图,跨境电商翻译工具
python·音视频
棉猴6 小时前
玩游戏学Python2-IDLE与pgzero入门
开发语言·python·游戏·玩游戏·pgzero·pgzrun
TechEdu2026067 小时前
[人工智能]Python12: SciPy 实战指南
人工智能·python·scipy