您的位置:首页 > 其它

lintcode-101-删除排序数组中的重复数字 II

2017-07-12 21:57 337 查看

101-删除排序数组中的重复数字 II


跟进“删除重复数字”:

如果可以允许出现两次重复将如何处理?

样例

标签

数组 两根指针 脸书


思路

参照上一篇博客lintcode-100-删除排序数组中的重复数字,只需加一个标志isSecond,用于表示某个数字是否出现了2次

code

class Solution {
public:
/**
* @param A: a list of integers
* @return : return an integer
*/
int removeDuplicates(vector<int> &nums) {
// write your code here

int size = nums.size(), i = 0, j = 1;
bool isSecond = false;

if(size <= 0) {
return 0;
}
int  newSize = 1;
while(j<size) {
if(nums[i] == nums[j] && !isSecond){
nums[i+1] = nums[j];
i++;
j++;
newSize++;
isSecond = true;
}
else if(nums[i] < nums[j]){
nums[i+1] = nums[j];
i++;
j++;
newSize++;
isSecond = false;
}
else {
j++;
}
}

return newSize;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: