LintCode 刪除排序陣列中的重複數字 II
阿新 • • 發佈:2019-01-03
跟進刪除排序陣列中的重複數字:
如果可以允許出現兩次重複將如何處理?
樣例
給出陣列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;
}
};