面试经典(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

相关推荐
mumu1579 小时前
快速上手大模型推理vllm
人工智能·python·大语言模型·agent·vllm
明天会有多晴朗9 小时前
从零手写 Transformer!一个 Python 文件跑通英译中(PyTorch 附完整源码)
人工智能·pytorch·python·深度学习·transformer
ragnwang18 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
王中阳Go18 小时前
后端转 Agent 岗面试怎么答:8 个高频问题与应答口径
人工智能·后端·python·大语言模型
weixin_3077791319 小时前
RAG 面试陷阱——混合检索并非无条件优越:一个条件反转实验
人工智能·python·面试·职场和发展
云和数据.ChenGuang20 小时前
深入解析 Python 的 dir():从用法到 CPython 源码实现
开发语言·人工智能·python·langchain
荣码1 天前
长上下文与大文档处理:200页PDF怎么喂给AI,我踩了4个坑
java·python
databook1 天前
Pandas 与 Polars:语法、性能和资源占用方面的对比
python·数据分析·pandas
威哥爱编程1 天前
Python 智能体开发实战 10:本地跑得好好的,一并发就崩?把它做成一个能上线的服务
python·agent
威哥爱编程1 天前
Python 智能体开发实战 09:改了提示词,到底是变好还是变坏?搭一套能打分的离线评测
python·agent