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

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

分析

  1. 设置两个指针 一个跑全数组的,一个选择可被覆盖的位置
  2. 因为是有序的,要保留n个就将慢指针往后推n个

代码

/**
 * 下面代码是保留两个
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function(nums) {
    if(nums.length <= 2 ) return nums.length;

    // 想保留n个将f,s初始化设置为n
    let f = 2,s = 2;

    while(f < nums.length){   
        if(nums[s - 2] != nums[f]) {  // 此处也是一样 s - n  
            nums[s++] = nums[f]
        }  
        
        ++f;
    }

    return s;
};
posted @ 2023-10-23 13:47  GTK  阅读(25)  评论(0)    收藏  举报