Remove Duplicates from Sorted Array II

Remove Duplicates from Sorted Array II

问题:

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].

思路:

  双指针--遍历指针和当前应该写的位置指针

  和Remove Duplicates from Sorted Array类似,仅仅多了一个频次而已。

我的代码:

public class Solution {

    public int removeDuplicates(int[] A) {

        if(A == null || A.length == 0)  return 0;

        int cur = 1;

        int count = 1;

        for(int i = 1; i < A.length; i++)

        {

            if(A[i] == A[i-1])

            {

                count++;

                if(count < 3)

                {

                    A[cur++] = A[i];

                }

            }

            else

            {

                A[cur++] = A[i];

                count = 1;

            }

        }

        return cur;

    }

}
View Code

学习之处:

  • A[cur++] = num 等价于A[cur] = num ; cur++

你可能感兴趣的:(remove)