双指针法
- Runtime: 88 ms, faster than 68.58%
- Memory Usage: 38.8 MB, less than 29.65%
/**
* @param {number[]} nums
* @return {number}
*/
var removeDuplicates = function(nums) {
let i = 1
let count = 1
for(let j = 1; j < nums.length; j++) {
if(nums[j] !== nums[j - 1]) {
count = 1
} else {
count++
}
if(count < 3) nums[i++] = nums[j]
}
return i
};
移除有序数组中的重复元素,faster than 100%
/**
* @param {number[]} nums
* @return {number}
*/
var removeDuplicates = function(nums) {
var start = -1
var flag = 0
for(var i = 0; i < nums.length; i++){
if(nums[i] === nums[i + 1]){
if(start === -1) start = i
flag++
}else if(nums[i] !== nums[i + 1]){
if(flag > 1){
nums.splice(start, flag - 1)
i = start + 1
}
start = -1
flag = 0
}
}
return nums.length
};