80. Remove Duplicates from Sorted Array II

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.

 1 class Solution {
 2 public:
 3     int removeDuplicates(vector<int>& nums) {
 4         
 5         int len = nums.size();
 6         if(len == 0){
 7             return 0;
 8         }
 9         int start = 0;
10         int num = 0;
11         for(int i = 1; i < len; i ++){
12             if(nums[start] == nums[i]){
13                 num ++;
14                 if(num < 2){
15                     nums[++start] = nums[i];
16                 }
17             }else{
18                 num = 0;
19                 nums[++start] = nums[i];
20             }
21         }
22         return start + 1;
23     }
24 };
原文地址:https://www.cnblogs.com/sankexin/p/5862027.html