這次鐵人賽我要挑戰「每日一題 LeetCode」!將會連續三十天每天解一題程式題,題目會從基礎的陣列、字串一路到進階的動態規劃、圖論都有,而每天我也會分享自己的解題過程,包括怎麼理解題目、想到什麼解法、以及最後的程式碼,期望能用比較容易懂的方式記錄下來,更是訓練自己每天動腦和培養習慣的一種方式,更加希望自己演算法思維也能更紮實!
226.Invert Binary Tree DFS(深度優先搜尋) 想法:遞迴順序是 先遞迴左右子樹 (post-order),再交換當前節點左右子節點在每個...
7. Reverse Integer 題目:給定一個 32 位元有號整數 x,請你回傳它的數字「反轉後」的結果。 如果反轉後超出 32-bit 範圍([-2^...
104.Maximum Depth of Binary Tree 題目:求出二元樹的最大深度,也就是從根節點到最遠葉子節點的最長路徑上的節點數量 範例: E...
104.Maximum Depth of Binary Tree DFS(深度優先搜尋) 想法:最大深度 = 1 + 左右子樹最大深度 程式碼: class...
21. Merge Two Sorted Lists 題目:給定兩個 已排序的單向鏈表 list1 和 list2,將它們合併成一個排序好的鏈表並返回新鏈表的頭...
21. Merge Two Sorted Lists 優化版 想法:當list為空離開迴圈是: current.next = (list1==null ? li...
232. Implement Queue using Stacks 題目:請你用 兩個 stack 來實作一個 先進先出 (FIFO) 的 queue,並實作以...
121. Best Time to Buy and Sell Stock 題目:給一個股價序列,求一次買入和賣出可以得到的最大利潤 範例: Example...
733.Flood Fill 題目:給定一張圖片 image(用 2D 陣列表示,每個元素是像素顏色),從起始點 (sr, sc) 開始,把所有與起始點同顏色且...
733.Flood Fill 優化版 想法: 使用佇列(Queue)保存下一個要處理的像素——>先把起點放入佇列並上色 每次從佇列取出一個像素→ 塗上新顏色...