leetcode移除元素

移除元素

力扣题目27:给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。 你不需要考虑数组中超出新长度后面的元素。

示例 2: 给定 nums = [0,1,2,2,3,0,4,2], val = 2, 函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。

思考:

我们需要在原数组上进行改变数组,我一开始就想着返回去掉等于目标值的元素,然后返回数组的长度就行,忽略了这个原地修改数组,然后输出错误。要明白数组中的元素删除其实是删除后面的元素覆盖前一个元素。那我们就可以在找到不等于目标值的元素的时候,将这个值直接赋值给当前元素。

复制代码
/**`
 `* @param` `{number[]} nums`
 `* @param` `{number}` `val`
 `* @return` `{number}`
 `*/`
`var removeElement =` `function(nums,` `val)` `{`
    `let k =` `0`
    `let arr =` `[]`
    `for(let i=` `0;i<nums.length;i++){`
        `if(nums[i]` `!==` `val){`
`            nums[k]` `= nums[i];`  `// 原地修改nums`
`            k++;`
        `}`
    `}`
     `return k`
`};`
`
相关推荐
摸鱼的春哥42 分钟前
Agent教程15:认识LangChain,Agent框架的王(上)
前端·javascript·后端
明月_清风2 小时前
自定义右键菜单:在项目里实现“选中文字即刻生成新提示”
前端·javascript
明月_清风2 小时前
告别后端转换:高质量批量导出实战
前端·javascript
刘发财6 小时前
弃用html2pdf.js,这个html转pdf方案能力是它的几十倍
前端·javascript·github
地平线开发者11 小时前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮11 小时前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者11 小时前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考12 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
ssshooter13 小时前
看完就懂 useSyncExternalStore
前端·javascript·react.js
Live0000014 小时前
在鸿蒙中使用 Repeat 渲染嵌套列表,修改内层列表的一个元素,页面不会更新
前端·javascript·react native