【leetcode】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].

 
 
用两个指针,记录当前元素的上一个和上上个
每当发现相同时,count++,同时A[i-count]=A[i]
 
 1 class Solution {

 2 public:

 3     int removeDuplicates(int A[], int n) {

 4        

 5         int p1=0;

 6         int p2=1;

 7         if(n<=2) return n;

 8        

 9         int count=0;

10         for(int i=2;i<n;i++)

11         {

12             if(A[p1]==A[p2]&&A[p2]==A[i])

13             {

14                 count++;

15                 continue;

16             }

17             else

18             {

19                 A[i-count]=A[i];

20             }

21             p1++;

22             p2++;

23         }

24         return n-count;

25     }

26 };

 

你可能感兴趣的:(LeetCode)