80. Remove Duplicates from Sorted Array II

数组最多允许重复两个数字,如果数组长度小于等于2,直接返回数组长度。

然后依然是指针法,从2开始遍历。i作为一个试探指针,如果ik-2中的数字不相等,那么ik会同时前进,一旦ik-2中的数字相等,说明i前面已经有两个相等的数字,k就停在第三个数字上等待i找到新的不同的数字。

public int removeDuplicates(int[] nums) {
    if (nums.length <= 2) return nums.length;
    int k = 2;
    for (int i = 2; i < nums.length; i++) {
        if (nums[i] != nums[k - 2]) {
            nums[k] = nums[i];
            k++;
        }
    }
    return k;
}

results matching ""

    No results matching ""