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

相关推荐
Yuner200021 分钟前
Python深度学习:从入门到进阶
python·深度学习
Python×CATIA工业智造35 分钟前
Pycaita二次开发基础代码解析:参数化模板创建与设计表驱动建模
python·pycharm·pycatia
白应穷奇40 分钟前
编写高性能数据处理代码 01
后端·python
赴3351 小时前
机器学习 集成学习之随机森林
人工智能·python·随机森林·机器学习·集成学习·sklearn·垃圾邮件判断
站大爷IP1 小时前
掌握这五个Python核心知识点,编程效率翻倍!
python
星座5282 小时前
最新基于Python科研数据可视化实践技术
python·信息可视化·可视化·数据可视化
站大爷IP2 小时前
Python流程控制:让代码按你的节奏跳舞
python
gnawkhhkwang3 小时前
Flask + YARA-Python*实现文件扫描功能
后端·python·flask
yj15583 小时前
二手房翻新时怎样装修省钱?
python