標籤:leetcode java remove duplicates fr
題目:
Follow 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, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn‘t matter what you leave beyond the new length.
題意:
伴隨著問題"Remove Duplicates":
如果重複的元素最多允許出現兩次呢?
比如:
給定有序數組 nums = [1,1,1,2,2,3],
你的函數應該返回 length = 5, 數組nums中的前五個元素為1, 1, 2, 2 and 3.數組新的長度後面剩餘的元素無所謂。
演算法分析:
將前兩個重複元素放入list中,然後跳轉到下一個不同元素,繼續上述操作。最後將list元素重新添加到數組中
AC代碼:
<span style="font-family:Microsoft YaHei;font-size:12px;">public class Solution { public int removeDuplicates(int[] nums) {if(nums==null||nums.length==0) return 0; ArrayList<Integer> list = new ArrayList<Integer>();for(int i=0;i<nums.length;i++){if(i==nums.length-1){list.add(nums[i]);break;}if(nums[i]==nums[i+1]){while(nums[i]==nums[i+1]){i++;if(i+1>nums.length-1)break;}list.add(nums[i]);list.add(nums[i]);}elselist.add(nums[i]);}for(int i=0;i<list.size();i++)nums[i]=list.get(i); return list.size(); }}</span>
著作權聲明:本文為博主原創文章,轉載註明出處
[LeetCode][Java] Remove Duplicates from Sorted Array II