原题链接:27. 移除元素
解题思路:
- 用
moveIndex
始终指向存放不等于val
的元素位置。 - 遍历
nums
,遇到不等于val
的元素,就将其存入nums[moveIndex]
,并将moveIndex
加1。
/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function (nums, val) {
let moveIndex = 0 // 放置不等于val的元素索引
for (let i = 0; i < nums.length; i++) {
// 遍历nums,将不等于val的元素放置在moveIndex位置,之后将moveIndex加1
if (nums[i] !== val) {
nums[moveIndex++] = nums[i]
}
}
// moveIndex最终的值就是新的长度
return moveIndex
}