1. 程式人生 > >LintCode 刪除排序陣列中的重複數字 II

LintCode 刪除排序陣列中的重複數字 II

跟進刪除排序陣列中的重複數字
如果可以允許出現兩次重複將如何處理?
樣例
給出陣列A =[1,1,1,2,2,3],你的函式應該返回長度5,此時A=[1,1,2,2,3]。

這題和刪除重複的資料是一樣的,唯一不同的是我們需要儲存一個計數器來記錄當前重複資料的個數

code :

class Solution {
public:
    /**
     * @param A: a list of integers
     * @return : return an integer
     */
    int removeDuplicates(vector<int> &nums) {
        // write your code here
int i = 0; int count = 1; if (nums.size() == 0) return 0; for (int j = 1; j < nums.size(); ++j) { if (nums[i] == nums[j] && count < 2) { ++count; nums[++i] = nums[j]; } else if (nums[i] != nums[j]) { count = 1
; nums[++i] = nums[j] ; } } return i+1; } };