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`
`};`
`
相关推荐
晨间晓4 小时前
图片到底偏什么颜色?用华为云码道开发 OpenCV 色彩偏移分析工具
javascript·opencv·华为云
CQU_JIAKE4 小时前
10.15【A】
算法
晴天的雨.9924 小时前
【C++】模板进阶
开发语言·c++·算法
木井巳4 小时前
【动态规划】三步问题
java·算法·leetcode·动态规划·推荐算法
楚识科技4 小时前
手写 OCR 识别技术深度解析:从算法原理到政企级落地实现
算法·ocr
码爸7 小时前
b树详细介绍与示例
数据结构·b树
鬼手点金13 小时前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
leobertlan13 小时前
痛苦系列 | DSP-03 跨越单位圆:Z变换与零极点分析
算法·程序员
软件技术NINI13 小时前
美妆商城html+Css+js 4页
javascript·css·html
蛋蛋的就会顺顺的13 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣