Skip to main content

移除元素 2

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。

不要使用额外的数组空间,必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

思路:

  1. 遍历数组
  2. 最多出现两次arr[i] === arr[i+1] && arr[i+1] === arr[i+2]
  3. splice 删数后 i--
var data = [1,1,1,1,2,3,4,5]

function unique(arr){
for(let i=0;i<arr.length;i++){
if(arr[i] === arr[i+1] && arr[i+1] === arr[i+2]){
arr.splice(i,1)
i--
}
}
return arr.length
}

console.log(unique(data))