Given an array and a value, remove all instances of that value in place and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
The order of elements can be changed. It doesn’t matter what you leave beyond the new length.
Example:
Given input array nums = [3,2,2,3], val = 3
Your function should return length = 2, with the first two elements of nums being 2.
这个题目有点奇怪,虽然让返回的是数组的长度,但其实返回的是已经删除过的数组。
这里使用js的一个函数splice(index,length,con1,con2...)
可以删除特定位置的数组元素。第一个参数为需要删除的位置,第二个参数为需要删除的长度,后面的参数均可选,为需要添加的元素。
/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function(nums, val) {
if(nums===null)return null;
var i=0;
while(i<nums.length){
if(nums[i]==val)nums.splice(i,1);
else i++;
}
return i;
};