所謂的兩字串互為 Anagrams ,意思就是兩個字串中,字母出現的次數都一樣,只是位置不同,比如題目說的 ate 、 eat 、 tea 它們就都互為 Anagrams 。如何判斷兩字串是否互為 Anagrams 是關鍵解題點,這題雖然歸為 Medium ,但是偏向 easy 的,需要注意的點是:

  • 熟悉一些 java 內建常用的字串處理 function ,寫起來會比較簡潔。
  • 想到使用 map 結構來儲存分組資料。

Continue reading

這題是要求 Binary Tree 的 diameter ,要注意一下 diameter 的定義並不等於深度 ! 根據題目中的例子,可了解所謂 diameter 的定義,是兩點之間的最遠距離。雖然 Binary Tree 的 diameter 並不等於深度,但是和深度有非常大的關係,所以解法用 DFS 是比較直觀的想法。(雖然題目難度說是 easy,但我個人覺得應該算初階 medium…)

Continue reading

deep copy 是程式初新手常會有疑問的地方,這邊剛好可以藉由解題來複習指標的概念。另外這題有很巧妙的解法,就是利用 HashMap 來建立原 node 和拷貝 node 之間的映射 ! 也可以使用遞迴的解法,寫起來相當的簡潔。

Continue reading

這題為一個設計題,給了一個 Data Stream,希望設計一個 class 能夠支援連續的 operation,並找出該 Stream 目前的中位數。注意 Data Stream 中的 Data 是無序的且可以為負數,所以我們要做的第一件事是讓每一次 data 輸入進來,都要讓其有序。這裡介紹的解法十分巧妙,使用 maxHeap 和 minHeap 來解決問題,這樣中位數的計算便只要看 maxHeap 的最大值和 minHeap 的最小值來判斷。

Continue reading

這題給了我們一個無環有向圖 (directed acyclic graph)(DAG) 。有 N 個 node ,要找出所有可能的從 node 0node N-1 的路徑。像這種需要走到終點,且在每一次新的遞迴時,都要把當前路徑記錄下來,其本質都是深度遍歷 graph ,再加上 backtrack 回溯狀態。是經典的 dfs 的題目。

Continue reading

79. Word Search

題目給定一個 board 以及 一個 word ,我們要判斷的 board 上是否可以連線出 word。這題是蠻典型的 graph 類題目,用 BFS 或 DFS 解題都行,但用深度優先 DFS 來解題會比較好一些(可以先思考一下為什麼)。解題流程還蠻制式化的,是熟練 graph 類型的練習好題目 XD。

Continue reading

題目給了我們一個字符 s,還有一個目標字符 t,要在 s 中找到一個 minimum window substring 使得其包含了 t 中的所有的字母。整體看起來題目難在 :

  • 限制了時間複雜度為 O(n + m)
  • 第一次要寫出 bug free 有點困難

故備標註為 hard ,但整體思路上並不算太難,值得品味一下 !

Continue reading

這道題給了一個 string,然後要盡可能將 string 切割越多塊 sub-string 越好( as many parts as possible),其中條件是每個 char,最多只能出現在自己的 sub-string 中。 即 :

  • 分割字串使字串中的每個字母在該分割段落中出現達到最多次。

題目理解是和自己想解法是比較花時間的,看過解答後都可以很快寫出來。

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

Author's picture

李昀陽 YunYang Lee

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

Software Engineer

Taiwan