LeetCode 80. Remove Duplicates from Sorted Array II 解題報告
阿新 • • 發佈:2019-02-16
80. Remove Duplicates from Sorted Array II
My Submissions Total Accepted: 66554 Total Submissions: 207698 Difficulty: MediumFollow 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
1
, 1
, 2
, 2
and 3
.
It doesn't matter what you leave beyond the new length.
Subscribe to see which companies asked this question
Show Tags Have you met this question in a real interview? Yes No這道題需要在傳入陣列的基礎上改成去重之後的。其實,當前有多少個不重複的元素,那麼下一個不重複的元素直接覆蓋到這個索引位就可以了。
我的AC程式碼
public class RemoveDuplicatesfromSortedArrayII { /** * @param args */ public static void main(String[] args) { int[] a = { 1, 1, 1, 2, 2, 3 }; System.out.println(removeDuplicates(a)); int[] b = { 1, 1, 1, 1, 3, 3 }; System.out.println(removeDuplicates(b)); } public static int removeDuplicates(int[] nums) { if (nums.length == 0) { return 0; } int sum = 1, cnt = 1, pre = nums[0]; for (int i = 1; i < nums.length; i++) { if (pre == nums[i]) { cnt++; if (cnt <= 2) { sum++; nums[sum - 1] = nums[i]; } } else { pre = nums[i]; cnt = 1; sum++; nums[sum - 1] = nums[i]; } } return sum; } }