80. Remove Duplicates from Sorted Array II

来源:互联网 发布:开票软件 000012 编辑:程序博客网 时间:2024/06/09 22:58

题目

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.

思路

本题计算数组个数,因为数组有序,且重复项不超过俩个,那么只要从数组index=2处将nums[index]与nums[index-2]比大小,大的就计数加一,否则不变

代码

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