57. Insert Interval

此題給定一個沒有 overlapping 且按照起始座標排序的 interval 集合,然後再給一個 newInterval 放到該集合內,要合併 interval 使它們都不會重疊,最後返回新的 non-overlapping intervals。 本題的生活化的模擬,可以把題目想成自修室租借,然後插入自己的使用時段(亂入別人的使用時間…),最後返回整個自修室被租借的時段。

Continue reading

Multiple points 的操作,經常用在 array 或 linkedList 上,有幾點事情可以在刷題時特別注意:

  1. 指標會把 list 切成幾個部分,特別注意每一部份的定義

  2. list 是否有排序或可以排序

  3. 指標移動是使用快慢指標還是左右指標

  4. 會不會改變原本的 list

其中第一點,把 array 切成幾個部分,每個部份的定義,是最重要的思想,可以多思考。

Continue reading

18. 4Sum

Leetcode 幾個數字題,15、16、18,基本上套路都是一樣的(甚至可以預期可能還會出 5 Sum…),整體的解法都差不多,可以一起複習,重點仍然是 :

  1. 排序 array
  2. 避免的重複項

以 3Sum 此基礎上,再加了一個循環而已。

Continue reading

15. 3Sum

是 Two Sum 的一種另類進階,從 nums 中找出和為 0 的三個 element ,並組成 List of list 。特別注意,不能有兩個內容一樣的 list。因為整個題目並沒有對 numsindex 有任何要求,故可以把 nums 排序,為解題拓開另一種思路。

Continue reading

16. 3Sum Closest

這題跟 15 題相似,又增加了些許難度。題目敘述一樣也很簡單 : 求 nums 內最接近 target 值的三數和。優化關鍵點一樣是,把 nums 排序,這樣就可以確定指針滑動方向。

Continue reading

Array 是 Java 中的基本功能,而 ArrayList 是 Collection 的一部分; ArrayList 和 LinkedList 都是 Java 中的集合類型,它們都實現了 List 接口。基本特徵簡單如下 :

  • Array 是一個有固定大小的,每次創建都需要設定,而且在創建後,是不能再更改大小
  • ArrayList ,是一個有浮動大小的Array,且適用於需要快速訪問集合中的元素的場景。
  • LinkedList 適用於頻繁插入和刪除元素的場景。

如果需要實現隊列或棧等數據結構,也可以選擇 LinkedList。

Continue reading

Author's picture

李昀陽 YunYang Lee

Welcome to my Tech Note. You can read some of the chapters below.

Software Engineer

Taiwan