80 Remove Duplicates from Sorted Array II

双指针法

  • 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
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容