描述
跟进“删除重复数字”:
如果可以允许出现两次重复将如何处理?
样例
给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A=[1,1,2,2,3]
考虑
- 允许出现两次重复, 直接在判定条件中改即可。如果出现三个重复项,则对第三个重复项循环删除
代码
// By Lentitude
class Solution {
public:
/**
* @param A: a list of integers
* @return : return an integer
*/
int removeDuplicates(vector<int> &nums) {
// write your code here
if (nums.empty()) return 0;
vector<int>::iterator pos = nums.begin();
for (int i = 1; i != nums.size(); ++i){
while (i + 1 < nums.size() && nums[i-1] == nums[i] && nums[i] == nums[i+1]){
nums.erase(pos + i + 1);
}
}
return nums.size();
}
};