Remove Duplicates from Sorted Array II

来源:互联网 发布:农业大数据方案 编辑:程序博客网 时间:2024/05/22 01:38

题目

Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?

For example,
Given sorted array A = [1,1,1,2,2,3],

Your function should return length = 5, and A is now [1,1,2,2,3].

方法

和上一题不同的是相同元素允许存在两个,使用flag来标记该元素是否已经保存了两个。

    public int removeDuplicates(int[] A) {        if (A == null) {        return 0;        }        int len = A.length;        if (len < 3) {            return len;        }                boolean flag = false;        int end = 0;        for (int i = 1; i < len; i++) {            if (A[i] != A[end]) {                end++;                A[end] = A[i];                flag = false;            } else {                if (flag == false) {                    end++;                    A[end] = A[i];                    flag = true;                }            }        }        return end + 1;    }


0 0