Leetcode 80 Remove Duplicates from Sorted Array II

来源:互联网 发布:淘宝 英语教练 编辑:程序博客网 时间:2024/05/17 17: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 1122 and 3. It doesn't matter what you leave beyond the new length.

删除重复第三次及以上的数字,并返回删除后的长度。

两个指针解决,快指针扫描,慢指针保存保留的数字。

class Solution {public:    int removeDuplicates(vector<int>& nums)     {        int result=nums.size(),pre=1;        for(int i=1,j=1;i<nums.size();i++)        {            if(nums[i]==nums[i-1])            {                pre++;                if(pre>2)                     result--;                else                    nums[j++]=nums[i];            }            else            {                pre=1;                nums[j++]=nums[i];            }        }        return result;    }};


1 0