解決LeetCode 刪除排序陣列中的重複項 II

2021-10-03 02:43:05 字數 1231 閱讀 7572

題目

刪除排序陣列中的重複項 ii

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

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

解答我想到了兩種解法,一種比較好想,但耗時長一些,另一種耗時短一些但不容易想到。

第一種:

public

intremoveduplicates

(int

nums)

else

if(count >2)

else

} j = j -1;

//j後面的陣列(包括j)前移一位,j的位置要向前移一位}}

}}return f;

}

第二種:

/*過程

* 0 0 1 1 1 1 2 2 2 4

* index-2 i(index)

* * 0 0 1 1 1 1 2 2 2 4

* index-2 i(index)

* * 0 0 1 1 1 1 2 2 2 4

* index-2 (index) i

* * 0 0 1 1 1 1 2 2 2 4

* index-2 (index) i

* * 0 0 1 1 2 1 2 2 2 4

* index-2 (index) i

* 0 0 1 1 2 2 2 2 2 4

* index-2 (index) i

* 0 0 1 1 2 2 2 2 2 4

* index-2 (index) i

* 0 0 1 1 2 2 4 2 2 4

* index-2 (index) i

*/public

static

intremoveduplicates

(int

nums)

return index;

//返回index的值

}}

leetcode刪除排序陣列的重複項

是題目描述 最開始想到的是使用雙重for迴圈 def removeduplicates nums type nums list int rtype int for i in range len nums 1 first nums i for j in range i 1,len nums if nu...

Leetcode題解026 刪除排序陣列中的重複項

給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o 1 額外空間的條件下完成 給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素被修改為 1...

leetcode 刪除排序陣列重複元素

題目 給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地 修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 給定 nums 0,0,1,1,1,2,2,3,3,4 函式應該返回新的長度 5,並且原陣列 num...