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`
`};`
`
相关推荐
Lionel68910 小时前
分步实现 Flutter 鸿蒙轮播图核心功能(搜索框 + 指示灯)
算法·图搜索算法
小妖66610 小时前
js 实现快速排序算法
数据结构·算法·排序算法
xsyaaaan10 小时前
代码随想录Day30动态规划:背包问题二维_背包问题一维_416分割等和子集
算法·动态规划
全栈前端老曹11 小时前
【MongoDB】Node.js 集成 —— Mongoose ORM、Schema 设计、Model 操作
前端·javascript·数据库·mongodb·node.js·nosql·全栈
zheyutao11 小时前
字符串哈希
算法
A尘埃12 小时前
保险公司车险理赔欺诈检测(随机森林)
算法·随机森林·机器学习
低代码布道师12 小时前
Next.js 16 全栈实战(一):从零打造“教培管家”系统——环境与脚手架搭建
开发语言·javascript·ecmascript
一位搞嵌入式的 genius12 小时前
深入 JavaScript 函数式编程:从基础到实战(含面试题解析)
前端·javascript·函数式
choke23312 小时前
[特殊字符] Python 文件与路径操作
java·前端·javascript
大江东去浪淘尽千古风流人物12 小时前
【VLN】VLN(Vision-and-Language Navigation视觉语言导航)算法本质,范式难点及解决方向(1)
人工智能·python·算法