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

解法性能:

解法分析:

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

相关推荐
先做个垃圾出来………6 小时前
如何培养自己工程化的能力(python项目)
开发语言·python
mortimer6 小时前
Hugging Face 下载模型踩坑记:从符号链接到网络错误
人工智能·python·ai编程
现在,此刻6 小时前
leetcode 11. 盛最多水的容器 -java
java·算法·leetcode
amazinging7 小时前
北京-4年功能测试2年空窗-报培训班学测开-第七十三天-投递简历-[特殊字符][特殊字符]
python·学习
☆璇7 小时前
【C++】哈希的应用:位图和布隆过滤器
算法·哈希算法
码达拉8 小时前
顺序表的总结及模拟实现
数据结构·c++
Boop_wu8 小时前
[ 数据结构 ] 时间和空间复杂度
数据结构
一株月见草哇8 小时前
Matlab(4)
人工智能·算法·matlab
IMER SIMPLE8 小时前
人工智能-python-机器学习-线性回归与梯度下降:理论与实践
人工智能·python·机器学习
hans汉斯9 小时前
基于深度学习的苹果品质智能检测算法研究
人工智能·深度学习·算法