首页 > 代码库 > leetcode-Remove Duplicates from Sorted Array II-80

leetcode-Remove Duplicates from Sorted Array II-80

输入非递减数组,要求每个元素最多重复两次,求最后剩下的数组和元素个数

这题函数的返回值是元素个数,但是还需要把输入的参数也就是输入的数组也改动成合法的

因为是有序的序列,所以直接遍历一遍,用cur保存元素,cnt保存这个元素出现的次数就好,ON

 1 class Solution { 2 public: 3     int removeDuplicates(vector<int>& nums) { 4         int ans=0; 5         if(nums.size()==0) return ans; 6         int cur=nums[0]; 7         int cnt=1; 8         ans=1; 9         for(int i=1;i<nums.size();i++){10             if(nums[i]==cur){11                 cnt++;12                 if(cnt<=2) nums[ans++]=nums[i];13             }14             else{15                 cur=nums[i];16                 cnt=1;17                 nums[ans++]=nums[i];18             }19         }20         return ans;21     } 22 };

 

leetcode-Remove Duplicates from Sorted Array II-80