leetcode Remove Duplicates from Sorted Array II
2014-09-13 21:27
405 查看
/***************************************************************** created: 2014/09/13 16:16 filename: remove-duplicates-from-sorted-array.cpp author: Justme0 (http://blog.csdn.net/justme0) purpose: 有序数组中,有至少三个相同元素时删掉只留两个 https://oj.leetcode.com/problems/remove-duplicates-from-sorted-array-ii/ *****************************************************************/ #include <iostream> #include <cassert> #include <vector> using namespace std; class Solution { public: int removeDuplicates(int A[], int n) { if (n <= 2) { return n; } vector<int> iVec; iVec.push_back(A[0]); for (int i = 1; i < n - 1; ++i) { if (!(A[i - 1] == A[i] && A[i] == A[i + 1])) { iVec.push_back(A[i]); } } iVec.push_back(A[n - 1]); assert(iVec.size() <= unsigned(n)); for (unsigned i = 0; i < iVec.size(); ++i) { A[i] = iVec[i]; } return iVec.size(); } }; class Solution2 { public: int removeDuplicates(int A[], int n) { if (n <= 2) { return n; } int len = 2; for (int i = 2; i < n; ++i) { if (A[i] != A[len - 2]) { A[len] = A[i]; ++len; } } assert(len <= n); return len; } }; int main(int argc, char **argv) { int arr[] = {1, 1, 2, 2, 3}; int len = sizeof arr / sizeof *arr; int new_len = Solution2().removeDuplicates(arr, len); for (int i = 0; i < new_len; ++i) { cout << arr[i] << endl; } system("PAUSE"); return 0; }
相关文章推荐
- [leetcode]_Remove Duplicates from Sorted Array II
- LeetCode-Array-80 Remove Duplicates from Sorted Array II
- Leetcode 线性表 Remove Duplicates from Sorted Array II
- [LeetCode]Remove Duplicates from Sorted Array II
- LeetCode 80:Remove Duplicates from Sorted Array II
- leetcode80~Remove Duplicates from Sorted Array II
- leetcode-80-Remove Duplicates from Sorted Array II 顺序表
- LeetCode Online Judge 题目C# 练习 - Remove Duplicates from Sorted Array II
- [leetcode]Remove Duplicates from Sorted Array II
- [LeetCode] Remove Duplicates from Sorted Array II [27]
- [Leetcode]Remove Duplicates from Sorted Array II
- 【leetcode】Remove Duplicates from Sorted Array II
- Leetcode_c++: Remove Duplicates from Sorted Array II (080)
- [leetcode] Remove Duplicates from Sorted Array II
- [LeetCode] Remove Duplicates from Sorted Array II
- 【leetcode】Array——Remove Duplicates from Sorted Array II(80)
- Leetcode Remove Duplicates from Sorted Array II
- 【leetcode】Remove Duplicates from Sorted Array II
- [leetcode]Remove Duplicates from Sorted Array II(Java实现)
- leetcode 80: Remove Duplicates from Sorted Array II