http://oj.leetcode.com/problems/remove-duplicates-from-sorted-array-ii/
要求可以用重复元素,但是最大重复次数为两次。
#include <iostream> using namespace std; class Solution { public: int removeDuplicates(int A[], int n) { if(n == 0) return 0; if(n == 1) return 1; int times = 1; int preOne = A[0]; int nextAvaliablePosition = 1; for(int i = 1;i<=n-1;i++) { if(A[i] != preOne ) { preOne = A[i]; A[nextAvaliablePosition] = A[i]; nextAvaliablePosition ++; times = 1; }else { times ++; if(times == 2) { A[nextAvaliablePosition] = A[i]; nextAvaliablePosition ++; } } } return nextAvaliablePosition; } }; int main() { Solution myS; int A[] = {1,5,5,2,2,2,3,4,4,4}; int ans = myS.removeDuplicates(A,10); cout<<ans; return 0; }