移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
思路:
因为需要原地删除所有数值等于 val 的元素,所以这道题只能在原数组上动手脚。
left指向数组的首部,right指向数组尾部。
如果nums[left]==val,则把nums[right]赋值给nums[left],right-1。
如果nums[left]!=val,left+1。
当left大于right时,结束循环。
var removeElement = function(nums, val) {
let left = 0, right = nums.length - 1;
while(left<=right){
if(nums[left]===val){
nums[left] = nums[right];
right = right - 1;
continue;
}
else{
left = left + 1;
}
}
return right+1;
};