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

相关推荐
LiLiYuan.1 分钟前
【Lombok库常用注解】
java·开发语言·python
不去幼儿园32 分钟前
【启发式算法】灰狼优化算法(Grey Wolf Optimizer, GWO)详细介绍(Python)
人工智能·python·算法·机器学习·启发式算法
二川bro36 分钟前
数据可视化进阶:Python动态图表制作实战
开发语言·python·信息可视化
青青子衿_211 小时前
TikTok爬取——视频、元数据、一级评论
爬虫·python·selenium
忘却的旋律dw1 小时前
使用LLM模型的tokenizer报错AttributeError: ‘dict‘ object has no attribute ‘model_type‘
人工智能·pytorch·python
20岁30年经验的码农2 小时前
Java RabbitMQ 实战指南
java·开发语言·python
studytosky3 小时前
深度学习理论与实战:MNIST 手写数字分类实战
人工智能·pytorch·python·深度学习·机器学习·分类·matplotlib
上不如老下不如小4 小时前
2025年第七届全国高校计算机能力挑战赛初赛 Python组 编程题汇总
开发语言·python·算法
Q_Q5110082854 小时前
python+django/flask的结合人脸识别和实名认证的校园论坛系统
spring boot·python·django·flask·node.js·php
Q_Q5110082854 小时前
python+django/flask的选课系统与课程评价整合系统
spring boot·python·django·flask·node.js·php