iT邦幫忙

鐵人檔案

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

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

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

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

Day11. 單調堆疊(Monotonic Stack)

前言 昨天介紹完 Queue 和 Stack,今天來聊聊單調堆疊,看名字可以知道是堆疊的變種,那麼差在哪裡呢?單調這兩個字指的是讓存放於堆疊中的元素具單調性...

DAY 12

Day12. 單調佇列(Monotonic Queue)

前言 昨天聊了單調堆疊,單調堆疊解決了下一個最大/最小元素的問題,那麼如果我們把佇列也套上單調性,能夠解決什麼樣的問題嗎?在陣列的部分,我們聊過滑動窗口的問題...

DAY 13

Day13. 二元樹(Binary Tree) - 基本介紹與遍歷

資料結構 過了些時日,我們終於來到了樹狀結構的地方,樹狀結構是演算法題目中的一個大篇幅,也是相對前面陣列、佇列來說結構更加複雜的地方。今天我們先大概了解一下樹...

DAY 14

Day14. 二元樹(Binary Tree) - 結構認識與操作

前言 二元樹真的是演算法裡非常大的一個章節。(看看 Leetcode,有 Binary Tree 的 Tag 的題目就有 100多題)因為樹這個結構本身就是透...

DAY 15

Day15. 層級遍歷二元樹(Level Order Traversal)

前言 二元樹的層級搜索,指的是從層級由根往葉,以橫的方向逐一遍歷每層節點。這在圖論中,有個專有的搜尋法:廣度優先搜尋法,Breadth-First Searc...

DAY 16

Day16. 樹的深度與平衡二元樹(Balanced Tree)

看過層級遍歷後,我們來看下一個主題:樹的深度相關的主題。平衡二元樹的特性也與樹的深度相關,在切入正題之前,我們先來題簡單的深度計算熱熱手。 Maximum De...

DAY 17

Day17. 二元搜尋樹(Binary Search Tree)的 CRUD - 查找(Read)

前言 雖然在 Day 14 我們有寫過一題構造 Binary Search Tree (文中會簡稱 BST)的題目,但還沒好好的看過這個結構,這個結構的相關題...

DAY 18

Day18. 二元搜尋樹(Binary Search Tree)的 CRUD - 修改(Update)和刪除(Delete)

如昨天講的,今天主要會討論二元搜尋樹的刪除與修改。今天寫標題才突然想到,如果 Create 我指的是創建整棵樹,那好像刪除也要同等是講整棵樹,不過今天要討論的刪...

DAY 19

Day19. 樹結構的基礎回朔算法(Backtracking)

樹的結構差不多告一個段落,再來就資料結構的順序上,會進入圖的單元,也就是樹結構的進階。圖的結構裡有兩種主要遍歷模式,分別是深度優先搜尋(DFS)和廣度優先搜尋(...

DAY 20

Day20. 圖(Graph) - 基本介紹

如果和其他演算法相關的系列文比較,就會發現差不多也涵蓋完了基本的資料結構,在以資料結構來討論裡面,圖通常是大家的最後一站(撇除部分系列文會討論更高階的資料結構)...