您的位置:首页 > 其它

LeetCode Remove Duplicates from Sorted Array II

2015-04-08 16:54 381 查看
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]
.
题意:求允许重复一次的话,数组的长度。
思路:就是记录出现次数和2比。

class Solution {
public:
    int removeDuplicates(int A[], int n) {
        if (n == 0) return 0;

        int tmp = A[0], count = 0;
        int cur = 0;

        for (int i = 0; i < n; i++) {
            if (tmp == A[i])
                count++;
            else {
                for (int j = 0; j < min(count, 2); j++)
                    A[cur++] = tmp;
                tmp = A[i];
                count = 1;
            }
        }

        for (int i = 0; i < min(2, count); i++)
            A[cur++] = tmp;

        return cur;
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: