首页 > 代码库 > [LeetCode] Remove Duplicates from Sorted Array II
[LeetCode] Remove Duplicates from Sorted Array II
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]
.
Hide Tags
Array Two Pointers 这个很容易判断了,设两个index,一个是遍历的,一个是指向返回的最后位置,因为已经排序了,所以判断索引的值与最后位置及前一个的值是否相等,相等继续遍历,不相等更新索引。
1 #include <iostream> 2 using namespace std; 3 4 class Solution { 5 public: 6 int removeDuplicates(int A[], int n) { 7 if(n<3) return n; 8 // cout<<n<<endl; 9 int retidx= 1,curidx =2;10 for(;curidx<n;curidx++){11 // cout<<retidx<<" "<<curidx<<endl;12 if(A[retidx]==A[curidx]&&A[retidx-1]==A[curidx])13 continue;14 A[++retidx] = A[curidx];15 }16 return retidx+1;17 }18 };19 20 int main()21 {22 int a[]={};23 Solution sol;24 int ret = sol.removeDuplicates(a,sizeof(a)/sizeof(int));25 for(int i=0;i<ret;i++)26 cout<<a[i]<<" ";27 cout<<endl;28 return 0;29 }
[LeetCode] Remove Duplicates from Sorted Array II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。