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

相关推荐
财经资讯数据_灵砚智能7 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年4月20日
人工智能·python·信息可视化·自然语言处理·ai编程
m0_6403093011 分钟前
如何用SQL统计每组的平均值同时显示原行_OVER子句
jvm·数据库·python
qq_3721542316 分钟前
Redis如何在应用启动时预热缓存数据
jvm·数据库·python
解救女汉子21 分钟前
CSS如何利用CSS变量进行渐变色管理_提升渐变配置的灵活性
jvm·数据库·python
keineahnung234534 分钟前
PyTorch 張量尺寸為 1 時,步長為何不具語意?
人工智能·pytorch·python·深度学习
m0_6784854535 分钟前
怎么导入只包含特定表的SQL文件_正则提取与分离导入
jvm·数据库·python
qq_432703661 小时前
MySQL中如何编写带有循环的函数_MySQL函数流程控制技巧
jvm·数据库·python
LiAo_1996_Y1 小时前
如何保证MongoDB文档的数据质量_JSON Schema验证规则配置
jvm·数据库·python
Yu_Lijing1 小时前
Python数据分析和数据处理库Pandas(DataFrame数据分析入门)
人工智能·python·数据分析·pandas
qq_372906931 小时前
Python最短路径怎么求_Dijkstra算法与优先队列结合
jvm·数据库·python