iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
自我挑戰組

狗是人類的好夥伴,阿狗(Algorithm)也是工程師的好夥伴 系列

雖然名字看上去是貓派,可是貓狗都喜歡。最近有工作方面的需求,需要對演算法更熟悉,也就是俗稱的刷題。在自我練習的過程中,希望能留些紀錄當作筆記釐清自己的思緒、完善思考結構。就像一開始不熟悉狗狗的時候可能覺得惡犬勿進,熟悉了之後就變成了好夥伴,讓我們用 30 天一起好好跟這隻 Algo 培養感情吧。
※本主題以分類介紹各種演算法基礎為主,並非高難度的算法探討

鐵人鍊成 | 共 31 篇文章 | 4 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day21. 圖的深度優先搜尋(DFS)與廣度優先搜尋(BFS)

在了解一個資料結構,一定是先從如何遍歷資料結構開始,懂得如何遍歷資料結構的過程中,也會更了解資料結構的架構。先前在樹的文章中有稍稍提到,深度搜尋和廣度搜尋,這個...

DAY 22

Day22. 更多圖論 DFS / BFS 相關題目

昨天用一題介紹了 DFS / BFS 的概念,那題雖然簡單,但是正因為簡單能幫助我們聚焦在想要展示的遍歷算法。今天會抽幾題和 DFS / BFS 相關的題目來介...

DAY 23

Day23. 併查集(Disjoint-Set / Union-Find)

昨天跟前天我們聚焦在 DFS 和 BFS,了解了關於走訪二維陣列表示的圖的基本遍歷與搜索技巧。要到更複雜的圖論題目前,我們得先聊聊併查集,Union-Find...

DAY 24

Day24. 最小生成樹(Minimum Spanning Tree)

昨天的併查集就是為了今天的題目做鋪墊:最小生成樹。最小生成樹用於解決圖結構中的節點連通問題,怕一開始提到太多特殊名詞,讓我們直接按順序來吧。 圖與樹的差異 樹與...

DAY 25

Day25. 有向圖的最短路徑計算(Dijkstra Algorithm)

昨天介紹了無向圖的最小生成樹來獲得無向圖中最短連通路徑的方式,今天要來討論有向圖的例子,如何在有向圖中給定一個起點,算出起點與其他點的最短距離。雖然昨天沒特別提...

DAY 26

Day26. 貪心算法(Greedy Algorithm)

貪心算法概念 有人稱呼為貪心、有人稱呼為貪婪,反正聽得懂就可以。貪心算法其實是一個相對抽象的概念,也可以一言以蔽之。「當能夠採取選擇的時候,每步都採取當下的最...

DAY 27

Day27. 動態規劃(Dynamic Programming) - 基本介紹

來到了我們三十天演算法的最後一個章節,動態規劃。動態規劃留了三天給他,希望能多看一點題目。動態規劃老實說概念不難,但如何知道是動態規劃後按邏輯寫出動態規劃思維的...

DAY 28

Day28. 動態規劃(Dynamic Programming) - 題目實作(上)

昨天介紹完了動態規劃的基礎,知易行難,今天會挑幾題一起來看看動態規劃的解題邏輯。其中最難的地方莫過於挑出正確的狀態轉移方程式,賦予 dp[i] 正確的意義。有些...

DAY 29

Day29. 動態規劃(Dynamic Programming) - 題目實作(下)

今天是預計準備題目內容的最後一天,明天會先就目前這 30 天的內容做一個 index 版本的整理,這也是我 30 天文章的習慣,如果有人接觸系列文章想要快速找到...

DAY 30

Day30. 希望阿狗(Algorithm)的陪伴,會讓你走得更遠 - 30 天回顧

今天是 30 天的最後一天,如昨天預告,慣例的第 30 天我都會做 30 天的內容整理與回顧。今天讓我們來整理一下這 30 天到底都看了些什麼內容。 大綱 一開...