题目接上一篇 100 。
允许出现两次,可以设定一个标志 falg 来计数,其余的不发生变化,将flag值初始设定为0,重复一次就加一,将多余重复的覆盖,最后重新设定vector的大小。与100类似。
public:
/**
* @param A: a list of integers
* @return : return an integer
*/
int removeDuplicates(vector<int> &nums) {
// write your code here
int num = nums.size();
if(num == 0) return 0;
int flag = 0;
int j = 0;
for(int i = 1; i < num; i++)
{
if(nums[i] != nums[j])
{
nums[++j] = nums[i];
flag = 0;
}
else if(nums[i] == nums[j] && flag == 0)
{
nums[++j] = nums[i];
flag++;
}
}
nums.resize(j + 1);
return nums.size();
}
};
2018/1/25