這篇文章,會帶著大家複習以前學過的遞回框架,
付費限定
合縱連橫: 從鏈結串列應用題 理解 遞回 背後的本質
更新於 發佈於 閱讀時間約 7 分鐘
以行動支持創作者!付費即可解鎖
本篇內容共 3012 字、2
則留言,僅發佈於Leetcode精選75題 解析+統整你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
小松鼠的演算法樂園
95會員
426內容數
由有業界實戰經驗的演算法工程師,
手把手教你建立解題的框架,
一步步寫出高效、清晰易懂的解題答案。
著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。
深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。
在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
小松鼠的演算法樂園的其他內容
2024/09/26
Leetcode 729. My Calendar I
給定一個行事曆的class定義和行程安排的介面interface。
請完成下列function
1.建構子MyCalendar() 初始化MyCalendar物件
2.boolean book(int start, int end) 插入新行程
2024/09/26
Leetcode 729. My Calendar I
給定一個行事曆的class定義和行程安排的介面interface。
請完成下列function
1.建構子MyCalendar() 初始化MyCalendar物件
2.boolean book(int start, int end) 插入新行程
2024/09/10
Insert Greatest Common Divisors in Linked List
題目給定一個鏈結串列,
請在兩兩節點之間加入一個新節點,新節點的值為兩者之間的最大公因數。
最後返回新串列的head node作為答案。
2024/09/10
Insert Greatest Common Divisors in Linked List
題目給定一個鏈結串列,
請在兩兩節點之間加入一個新節點,新節點的值為兩者之間的最大公因數。
最後返回新串列的head node作為答案。
2024/09/02
Binary Tree Inorder Traversal
題目給定一個二元樹的根結點。
請輸出中序拜訪(In-order traversal)的拜訪序列。
中序拜訪的定義:
1.拜訪左子樹。
2.拜訪目前的節點。
3.拜訪右子樹。
2024/09/02
Binary Tree Inorder Traversal
題目給定一個二元樹的根結點。
請輸出中序拜訪(In-order traversal)的拜訪序列。
中序拜訪的定義:
1.拜訪左子樹。
2.拜訪目前的節點。
3.拜訪右子樹。
你可能也想看






















大家好,我是一名眼科醫師,也是一位孩子的媽
身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。
每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。
然而作為一位媽媽,孩子能在安全、舒適的環境

大家好,我是一名眼科醫師,也是一位孩子的媽
身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。
每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。
然而作為一位媽媽,孩子能在安全、舒適的環境
在資料結構與演算法裡,
最簡單的線性資料結構除了list之外就是linked list鏈結串列了。
Linked list又有分為單向Singly linked list 和雙向Doubly linked list
在這篇文章,會從最基礎的Singly linked list開始講起。
定義
在資料結構與演算法裡,
最簡單的線性資料結構除了list之外就是linked list鏈結串列了。
Linked list又有分為單向Singly linked list 和雙向Doubly linked list
在這篇文章,會從最基礎的Singly linked list開始講起。
定義
這篇文章,會帶大家快速回顧DFS+回溯法框架(還沒看過或想複習的可以點連結進去)。
用DFS+回溯法框架,解開 直線排列Permutations 的全系列題目。
幫助讀者鞏固DFS+回溯法框架這個重要的知識點。
回顧 DFS+回溯法框架
白話的意思
# 列舉所有可能的情況,遞迴展開所有分
這篇文章,會帶大家快速回顧DFS+回溯法框架(還沒看過或想複習的可以點連結進去)。
用DFS+回溯法框架,解開 直線排列Permutations 的全系列題目。
幫助讀者鞏固DFS+回溯法框架這個重要的知識點。
回顧 DFS+回溯法框架
白話的意思
# 列舉所有可能的情況,遞迴展開所有分

這篇文章,會帶著大家複習以前學過的 區間DP框架,
並且以回文子字串、回文子序列的應用題與概念為核心,
貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。
回文字串的基本定義
s = s[::-1]
也就是說字串s的正序 和 逆序完全相同。
回文字串的基本結構
空字串"

這篇文章,會帶著大家複習以前學過的 區間DP框架,
並且以回文子字串、回文子序列的應用題與概念為核心,
貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。
回文字串的基本定義
s = s[::-1]
也就是說字串s的正序 和 逆序完全相同。
回文字串的基本結構
空字串"
這篇文章,會帶著大家複習以前學過的遞回框架,
並且鏈結串列的概念與應用為核心,
貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。
遞回框架
尋找共通模式(common pattern),對應到演算法的General case
確立初始條件(initial conditio
這篇文章,會帶著大家複習以前學過的遞回框架,
並且鏈結串列的概念與應用為核心,
貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。
遞回框架
尋找共通模式(common pattern),對應到演算法的General case
確立初始條件(initial conditio
這篇文章,會帶著大家複習以前學過的DFS + 回溯法框架,並且以回溯法為核心,
貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個食用的演算法框架。
DFS + 回溯法框架
用途:
展開所有可能的路徑(或者說狀態),並且把符合條件的狀態加入到最終的結果。
def backtrack
這篇文章,會帶著大家複習以前學過的DFS + 回溯法框架,並且以回溯法為核心,
貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個食用的演算法框架。
DFS + 回溯法框架
用途:
展開所有可能的路徑(或者說狀態),並且把符合條件的狀態加入到最終的結果。
def backtrack
題目敘述
題目會給定我們一條鏈結串列Linked list的起始節點,要求我們刪除Linked List正中央的節點。
註:
正中央的節點,題目定義為索引為floor( 串列長度 / 2 ) 的節點,索引從零(Head Node)出發開始數。
例如
1 -> 2 -> 3 -> 4
鏈結
題目敘述
題目會給定我們一條鏈結串列Linked list的起始節點,要求我們刪除Linked List正中央的節點。
註:
正中央的節點,題目定義為索引為floor( 串列長度 / 2 ) 的節點,索引從零(Head Node)出發開始數。
例如
1 -> 2 -> 3 -> 4
鏈結
題目敘述
題目會給我們一個鏈結串列的起點head,要求我們找出這個串列的中點。
註:
如果串列長度是偶數,就回傳中間偏右的那個節點。
例如:
1 -> 2 -> 3 回傳中點為2
1 -> 2 -> 3 -> 4 ->5 -> 6 回傳中點為4
詳細的題目可在這裡看到
測試範例
題目敘述
題目會給我們一個鏈結串列的起點head,要求我們找出這個串列的中點。
註:
如果串列長度是偶數,就回傳中間偏右的那個節點。
例如:
1 -> 2 -> 3 回傳中點為2
1 -> 2 -> 3 -> 4 ->5 -> 6 回傳中點為4
詳細的題目可在這裡看到
測試範例

題目會給我們兩條已經從小到大排序好的串列,要求我們依照從小到大的順序,合併這兩條串列。

題目會給我們兩條已經從小到大排序好的串列,要求我們依照從小到大的順序,合併這兩條串列。

題目:在此 kata 中,您將創建一個包含列表並返回具有相反順序的列表的函數。範例(輸入->輸出)
* [1, 2, 3, 4] -> [4, 3, 2, 1]
* [9, 2, 0, 7] -> [7, 0, 2, 9]

題目:在此 kata 中,您將創建一個包含列表並返回具有相反順序的列表的函數。範例(輸入->輸出)
* [1, 2, 3, 4] -> [4, 3, 2, 1]
* [9, 2, 0, 7] -> [7, 0, 2, 9]

題目的輸入會給我們一個串列,要求我們從頭到尾反轉整個串列。
例子:
如果輸入是1 -> 2 -> 3,那麼輸出就是 3 -> 2 -> 1

題目的輸入會給我們一個串列,要求我們從頭到尾反轉整個串列。
例子:
如果輸入是1 -> 2 -> 3,那麼輸出就是 3 -> 2 -> 1