80. Remove Duplicates from Sorted Array II

来源:互联网 发布:mac如何重命名文件名 编辑:程序博客网 时间:2024/05/22 05:13

Click here to try this problem on Leetcode
Follow up for “Remove Duplicates”:
What if duplicates are allowed at most twice?

For example,
Given sorted array nums = [1,1,1,2,2,3],

Your function should return length = 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn’t matter what you leave beyond the new length.
思路:这道题目是 26.Remove Duplicates from Sorted Array 的follow-up。不同之处在于,可以允许每个元素重复最多两次。所以,我们还是继续使用i和index这两个下标,只不过不同之处在于,i和index不再从0开始,而是都从2开始。然后每次判断是否满足nums[i] != nums[index - 2],如果满足,就把nums[i]的值赋给nums[index]

需要注意:
1.如果nums.size() <= 2,就直接返回nums.size()
2.最后返回值为index即可。

代码如下:

class Solution {public:    int removeDuplicates(vector<int>& nums) {        if(nums.size() <= 2) return nums.size();        int index = 2;        for(int i = 2; i < nums.size(); ++i){            if(nums[i] != nums[index - 2])                nums[index++] = nums[i];        }        return index;    }};
0 0
原创粉丝点击