题目描述
80. 删除排序数组中的重复项 II
思路
这个题就是逻辑稍复杂点,容易理不清楚,然后胡写,就过不了。写了6次都没过,就放弃了。
呢呢一次写出来了,告诉我写得逻辑不对,建议我画决策树先。于是我晚上睡前再试一次。
这个题的简单版都一次ac了:
#26 删除排序数组中的重复项
#27 移除元素
这个题建议还是画决策树,把if else的关系捋顺了再写。
代码
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if (nums.empty()) return 0;
int left = 0;
int cnt = 1;
for (int i = 1; i < nums.size(); i++) {
if (nums[left] != nums[i]) {
nums[++left] = nums[i];
cnt = 1;
} else {
if (cnt < 2) {
nums[++left] = nums[i];
}
cnt++;
}
}
return left+1;
}
};
网友评论