题目描述:
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记录重复多余两次的元素出现的次数,将每个元素向前移动count个单位。
代码:
int Solution::removeDuplicates(int A[], int n) { int count = 0; bool first = true; for(int i = 0;i < n;i++) { if(i != 0) { if(A[i] == A[i-1] && first) { first = false; A[i-count] = A[i]; continue; } else if(A[i] == A[i-1] && !first) { count++; A[i-count] = A[i]; continue; } else { first = true; A[i-count] = A[i]; continue; } } } return n - count; }
LeetCode:Remove Duplicates from Sorted Array II
原文地址:http://blog.csdn.net/yao_wust/article/details/41547695