iT邦幫忙

鐵人檔案

第 12 屆 iThome 鐵人賽
回列表
Software Development

你總是躲不掉的,不如放膽面對 LeetCode 吧! 系列

這是一篇督促自己刷 LeetCode 的文章。

從資料結構開始研究,找出可以配合的演算法後,去 LeetCode 找尋運用該知識的題庫。藉由實際刷題來了解如何應用理論的知識。
筆者熟悉的語言是 JS,工作上會使用到 Java 與 C,所以一道題目會使用三種語言撰寫(JS、Java、C),除了更加熟悉語言之外,更可以比較三者的不同之處。

鐵人鍊成 | 共 31 篇文章 | 65 人訂閱 訂閱系列文 RSS系列文 團隊Outcome First
DAY 11

Day 11: Search - Linear Search & Binary Search

關於 Search 如同第七天開頭提到,Sort 的功用在於幫助 Search 可以更快速。任何資料結構都是用來儲存資料,而如何取用是每一種資料結構的課題。目前...

DAY 12

Day 12: Stack

這是什麼? 先來看看 GeeksforGeeks 的定義: Stack is a linear data structure which follows a...

DAY 13

Day 13: Queue

這是什麼? 先來看看 GeeksforGeeks 的定義: A Queue is a linear structure which follows a par...

DAY 14

Day 14: Tree

這是什麼? 到現在為止,前幾天的內容集中在了解線性數列的資料結構。換個方向想: 大區塊的資料結構就是 Array,彼此相連,可以快速取得對應的資料。缺點一次需...

DAY 15

Day 15: Tree - Binary Tree(1)

這是什麼? 延續昨天的話題,Binary Tree 是 Tree 的約束版本,限制每個節點的子節點數量(最多左右兩個子節點),避免記憶體過度浪費。 用 Arra...

DAY 16

Day 16: Tree - Binary Tree(2)

延續昨天的內容,今天講解如何新增、移除資料。 執行新增、移除前,需要什麼? 先想像一個動態 Array,假設要新增、移除一個資料在: 特定的 index 第一...

DAY 17

Day 17: Tree - Binary Tree - Binary Search Tree(BST)

這是什麼? 在創造出 Binary Tree 後,思索著能否改善 Search 的速度,經過研究後發現,如果排列節點的方式參考 Binary Search,將能...

DAY 18

Day 18: Tree - Binary Tree - Heap

這是什麼? 滿足以下條件,那就是 Heap: 如果每個節點的子節點都大於或小於子自己。 新增節點時優先填滿階層後才往下一層。 Max Heap(所有子節點都...

DAY 19

Day 19: Tree - Trie

這是什麼? 一言以敝之,字典樹,屬於 Tree 的衍生資料結構。結構上一樣有 root,視為起點,第一層為各個單字的第一個字母,接著依照單字的字母,依序填入。...

DAY 20

Day 20: Tree - Suffix Array

這是什麼? Trie 的變形,將一個英文單字,從左邊開始一個一個移除後形成個別的後綴(Suffix)字,接著按照字典順序進行排序。 以 Banana 為例: 0...