[LeetCode] 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变量来记录key出现的次数。
1 class Solution { 2 public: 3 int removeDuplicates(int A[], int n) { 4 // Start typing your C/C++ solution below 5 // DO NOT write int main() function 6 if (n == 0) 7 return 0; 8 9 int key = A[0]; 10 int count = 0; 11 int start = 0; 12 13 for(int i = 0; i < n; i++) 14 if (key == A[i]) 15 count++; 16 else 17 { 18 for(int j = 0; j < min(2, count); j++) 19 A[start++] = key; 20 key = A[i]; 21 count = 1; 22 } 23 24 for(int j = 0; j < min(2, count); j++) 25 A[start++] = key; 26 27 return start; 28 } 29 };