Remove Duplicates from Sorted Array II
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]
.
思路:
双指针--遍历指针和当前应该写的位置指针
和Remove Duplicates from Sorted Array类似,仅仅多了一个频次而已。
我的代码:
public class Solution { public int removeDuplicates(int[] A) { if(A == null || A.length == 0) return 0; int cur = 1; int count = 1; for(int i = 1; i < A.length; i++) { if(A[i] == A[i-1]) { count++; if(count < 3) { A[cur++] = A[i]; } } else { A[cur++] = A[i]; count = 1; } } return cur; } }
学习之处:
- A[cur++] = num 等价于A[cur] = num ; cur++
posted on 2015-03-08 20:08 zhouzhou0615 阅读(118) 评论(0) 编辑 收藏 举报