给定一个数组和一个值,在这个数组中原地移除指定值和返回移除后新的数组长度。
不要为其他数组分配额外空间,你必须使用 O(1) 的额外内存原地修改这个输入数组。
元素的顺序可以改变。超过返回的新的数组长度以外的数据无论是什么都没关系。
示例:
给定 nums = [3,2,2,3],val = 3,
你的函数应该返回 长度 = 2,数组的前两个元素是 2。
思路:定义一个变量用来计数,遍历原数组,如果当前的值和给定值不同,我们就把当前值覆盖计数变量的位置,并将计数变量加1。
/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function(nums, val) {
let res = 0;
for(let i=0; i<nums.length;i++){
if(nums[i]!==val) nums[res++] = nums[i];
}
return res;
};