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

Author's picture

李昀陽 YunYang Lee

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

Software Engineer

Taiwan