LeetCode详解之如何一步步优化到最佳解法:27. 移除元素

LeetCode详解系列的总目录(持续更新中):

LeetCode详解之如何一步步优化到最佳解法:前100题目录(更新中...)-CSDN博客

LeetCode详解系列的上一题链接:

LeetCode详解之如何一步步优化到最佳解法:26. 删除有序数组中的重复项-CSDN博客

目录

LeetCode详解系列的总目录(持续更新中):

LeetCode详解系列的上一题链接:

[27. 移除元素](#27. 移除元素)

解法:最终版

解法思路:

代码:

解法性能:

解法分析:


27. 移除元素

本题题目链接: 27. 移除元素 - 力扣(LeetCode)

解法:最终版

解法思路:

首先,题目的要求中,下面的点很重要:

根据上面的提示,我们只需要确保将nums中与val不同的元素放到nums的前k个位置即可。我们可以用"快慢指针"的思路来解这道题。即,"慢指针"指明不等于val的元素有多少个;"快指针"遍历nums数组。

当"快指针"遍历nums数组时,遇到不等于val的元素,则将该元素放到"慢指针"所指向的位置,且"慢指针"向后移一位。

对应的代码如下所示:

代码:

python 复制代码
class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        slow_pt = 0
        for num in nums:
            if num != val:
                nums[slow_pt] = num
                slow_pt += 1
        
        return slow_pt

解法性能:

解法分析:

使用该方法,不论是消耗的时间,还是消耗的空间,都是较优的。

相关推荐
罗西的思考9 分钟前
【轻量化复刻大模型 / KIMI K3】KDA(Kimi Delta Attention):并行
人工智能·算法·机器学习
砚底藏山河40 分钟前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
视觉小萌新1 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
利威尔xu1 小时前
Go IM 源码实战(13):30 个会话只有 2 个红点,未读数错在三条路径
redis·后端·微服务·面试·golang
薛定谔的猫-菜鸟程序员1 小时前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
夜不会漫长2 小时前
C++:红黑树
数据结构·算法
文丑颜不良啊2 小时前
LeetCode1661~1680题目解析
java·leetcode
AI备案指南-满满3 小时前
算法备案审核不通过,一般是什么原因?
java·人工智能·算法·大模型备案·算法备案·大模型登记
Ramble_Naylor3 小时前
Rust深度解读:Send 与 Sync 的本质与线程安全边界
python·算法·rust
秋天的怀念_David3 小时前
算法一千零一夜 · 第二十三夜 电力民生写成的曲线
java·程序人生·算法