*80_remove_duplicates_from_sorte

2020-03-01  本文已影响0人  lazy_ccccat

题目描述

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;
    }
};
上一篇 下一篇

猜你喜欢

热点阅读