1 /************************************** * ************************** 2 created: filename: remove-duplicates-from-sorted-array.cpp 4 Author: justme0 (http://blog.csdn.net/justme0) 5 6 purpose: in an ordered array, only two 7 https://oj.leetcode.com/problems/remove-duplicates-from-sorted-array-ii/ 8 ************************** ***************************************/ 9 10 # include <iostream> 11 # include <cassert> 12 # include <vector> 13 using namespace STD; 14 15 class solution {16 public: 17 int removeduplicates (int A [], int N) {18 if (n <= 2) {19 Return N; 20} 21 22 vector <int> ivec; 23 ivec. push_back (A [0]); 24 for (INT I = 1; I <n-1; ++ I) {25 if (! (A [I-1] = A [I] & A [I] = A [I + 1]) {26 ivec. push_back (A [I]); 27} 28} 29 ivec. push_back (A [n-1]); 30 31 assert (ivec. size () <= unsigned (n); 32 for (unsigned I = 0; I <ivec. size (); ++ I) {33 A [I] = ivec [I]; 34} 35 return ivec. size (); 37} 38}; 39 40 class solution2 {41 public: 42 int removeduplicates (int A [], int N) {43 If (n <= 2) {44 return N; 45} 46 47 int Len = 2; 48 for (INT I = 2; I <n; ++ I ){ 49 if (a [I]! = A [Len-2]) {50 A [Len] = A [I]; 51 + + Len; 52} 53} 54 assert (LEN <= N ); 55 56 return Len; 57} 58}; 59 60 int main (INT argc, char ** argv) {61 int arr [] = {1, 1, 2, 2, 3}; 62 int Len = sizeof arr/sizeof * arr; 63 int new_len = solution2 (). removeduplicates (ARR, Len); 64 for (INT I = 0; I <new_len; ++ I) {65 cout <arr [I] <Endl; 66} 67 68 system ("pause"); 69 return 0; 70}
Leetcode remove duplicates from sorted array II