Skip to content

删除有序数组中的重复项 II

LeetCode-80

js
// 遍历一次数组,因此时间复杂度为O(n)
// 常数个额外变量,因此空间复杂度为O(1)
var removeDuplicates = function(nums) {
  let count = 0
  let len = nums.length
  for(let i = 0; i < len; i++) {
    // 双指针解法,一个指针负责赋值,另一个负责遍历
    // 如果当前遍历的值等于前后的值,则直接遍历下一个
    if(i > 0 && i < len - 1 && nums[i] === nums[i-1] && nums[i] === nums[i+1]) {
      continue
    } else {
      //
      nums[count++] = nums[i]
    }
  }
  console.log(nums)
  return count
}

// [1,1,2,2,2,3]