首页 > 代码库 > LeetCode: Remove Duplicates from Sorted Array II [080]
LeetCode: Remove Duplicates from Sorted Array II [080]
【题目】
Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?
For example,
Given sorted array A = [1,1,1,2,2,3]
,
Your function should return length = 5
, and A is now [1,1,2,2,3]
.
【题意】
给定一个有序数组,给数组去重,和Remove Duplicates from Sorted Array不同本题允许每个元素最多重复两次,也就是说如果某个元素出现了3次,则我们删除重复的一个,剩下2个元素。
【思路】
维护1个指针p1和一个计数变量counterp1指向消重后数组尾
counter用于记录当前元素出现的次数
【代码】
class Solution { public: int removeDuplicates(int A[], int n) { if(n<=2)return n; int p1=1; int counter=1; for(int i=1; i<n; i++){ if(A[i]==A[i-1]){ counter++; if(counter<=2){A[p1]=A[i]; p1++;} } else{ counter=1; A[p1]=A[i]; p1++; } } return p1; } };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。