leetcode-移除元素27
题目描述
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
示例
输入:nums = [0,1,2,2,3,0,4,2], val = 2 输出:5, nums = [0,1,3,0,4]
双指针
如果 fast 遇到需要去除的元素,则直接跳过,否则,即遇到有效元素,将fast所在元素赋值给slow,同时slow+1。
注: [0,slow)保存有效数,slow即为新数组的长度
代码实现
class Solution: def removeElement(self, nums: List[int], val: int) -> int: fast = slow = 0 n = len(nums) while fast<n: if nums[fast] !=val: nums[slow] = nums[fast] slow +=1 fast+=1 # return nums[:slow] return slow
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异