1. 程式人生 > >【LeetCode】80. 刪除排序陣列中的重複項 II(Remove Duplicates from Sorted Array II)

【LeetCode】80. 刪除排序陣列中的重複項 II(Remove Duplicates from Sorted Array II)

英文練習 | 中文練習

題目描述: 給定一個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素最多出現兩次,返回移除後陣列的新長度。

不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 O(1) 額外空間的條件下完成。

解題思路 : 遍歷一遍陣列,用一個下標記錄替換位置,將所有元素重新賦值一遍。

public int removeDuplicates(int[] nums) {
    if(nums == null || nums.length == 0) return 0;
        
    int i = 0;
    for(int num :
nums){ if(i < 2 || num > nums[i-2]){ nums[i] = num; i += 1; } } return i; }