标签:style blog http io ar color os sp for
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]
.
C++代码实现:
#include<iostream> using namespace std; class Solution { public: int removeDuplicates(int A[], int n) { int i,j; int count=0; if(n<3) return n; i=0; for(j=1; j<n; j++) { if(A[j]==A[j-1]) { A[j-count]=A[j]; continue; } else { if(j-i>=3) count+=j-i-2; A[j-count]=A[j]; i=j; } } if(j-i>=3) count+=j-i-2; return n-count; } }; int main() { Solution s; int arr[10]= {1,1,1,2,2,2,3,3,3,4}; int len=s.removeDuplicates(arr,10); cout<<len<<endl; for(int i=0;i<len;i++) cout<<arr[i]<<" "; cout<<endl; }
运行结果:
Remove Duplicates from Sorted Array II
标签:style blog http io ar color os sp for
原文地址:http://www.cnblogs.com/wuchanming/p/4108035.html