首页 > 代码库 > 【leetcode】Remove Duplicates from Sorted Array II

【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             else18             {19                 A[i-count]=A[i];20             }21             p1++;22             p2++;23         }24         return n-count;25     }26 };

 

【leetcode】Remove Duplicates from Sorted Array II