iT邦幫忙

資料結構與演算法相關文章
共有 316 則文章
鐵人賽 自我挑戰組 DAY 27

技術 Day27:Backtracking -回溯法

回溯法是暴力破解法的一種,在列出各種可能的組合時,如果遇到不符合條件的就不再繼續向下查找,而是回到上層繼續尋找其他可能,聽起來有點抽象,可以想像有很多條岔路可...

鐵人賽 自我挑戰組 DAY 14

技術 Day 14:安全雜湊演算法(SHA)

上回提到的雜湊函式,除了雜湊表外,還有不少有趣的應用。 其中一種就是安全雜湊演算法(全名Secure Hash Algorithm,縮寫SHA),它是一個加密雜...

鐵人賽 自我挑戰組 DAY 13

技術 Day 13:雜湊表(hash table)

在通訊錄或朋友列表裡,我們可以搜尋一個名字,就找到電話或頁面,只需要O(1)。如果想要實現這樣的操作,可以想像一種融合上一回陣列和鏈結串列的資料結構。 雜湊函式...

鐵人賽 Software Development DAY 12

技術 Day 12:145. Binary Tree Postorder Traversal

今日題目 題目連結:145. Binary Tree Postorder Traversal 題目主題:Stack, Tree, Depth-First Sea...

鐵人賽 自我挑戰組 DAY 26

技術 Day26:Dynamic Programming(DP) - 動態規劃(下)

Dynamic Programmin的經典應用除了斐波那契數之外,還有背包問題、最短路徑問題、河內塔、LCS等等,那麼我們就試著用Dynamic Program...

鐵人賽 自我挑戰組 DAY 25

技術 Day25:Dynamic Programming(DP) - 動態規劃(上)

在認識動態規劃之前先來理解Divide and Conquer(分治法)吧!Divide and Conquer是一種演算法,執行的步驟如下 Divide:先...

鐵人賽 自我挑戰組 DAY 12

技術 Day 12 :陣列(array)與鏈結串列(linked list)

討論過這麼多種演算法之後,會發現操作時常常會使用陣列或是某些資料結構。資料結構是指電腦中管理資料的特定方式,有助於資料的運用,選擇適合的結構也可以增進演算法效率...

鐵人賽 Software Development DAY 11

技術 Day 11:94. Binary Tree Inorder Traversal

今日題目 題目連結:94. Binary Tree Inorder Traversal 題目主題:Stack, Tree, Depth-First Search...

鐵人賽 Software Development DAY 9

技術 【在廚房想30天的演算法】Day 09 資料結構:佇列 Queue

Aloha!又是我少女人妻 Uerica!自從寫了鐵人賽文章後,因為我跟老公都太忙,我家狗狗對我發出各種抗議,拍滑鼠、抓手手、躲在角落哭哭,早上 8 點準時用粗...

鐵人賽 自我挑戰組 DAY 24

技術 Day24:Enumeration - 列舉法

列舉法又稱為窮舉法,簡單來說就是把所有可能發生的狀況都列出來,再根據問題提供的條件,從中找出符合條件的解答,也就是所謂的暴力破解法,優點是簡單直觀,缺點就是當...

鐵人賽 Software Development DAY 10

技術 Day 10:144. Binary Tree Preorder Traversal

今日題目 題目連結:144. Binary Tree Preorder Traversal 題目主題:Stack, Tree, Depth-First Sear...

鐵人賽 Software Development DAY 9

技術 Day 9:1046. Last Stone Weight

今日題目 題目連結:1046. Last Stone Weight 題目主題:Array, Heap(Priority Queue) 今天的重點一樣在Heap...

鐵人賽 自我挑戰組 DAY 23

技術 Day23:Greedy Algorithm - 貪婪演算法

貪婪演算法(英語:greedy algorithm),又稱貪心演算法,是一種在每一步選擇中都採取在當前狀態下最好或最佳(即最有利)的選擇,從而希望導致結果是...

鐵人賽 Software Development DAY 8

技術 【在廚房想30天的演算法】Day 08 資料結構:堆疊 Stack

Aloha~!我是少女人妻 Uerica!有天地方角頭米飯,蒸籠幫的包子、饅頭、肉粽起了爭執,米飯米口眾多出手又兇狠,很快打得包子饅頭滿地找牙,害怕的肉粽被逼到...

鐵人賽 Software Development DAY 7

技術 【在廚房想30天的演算法】Day 07 資料結構:陣列 Array

Aloha~又是我少女人妻 Uerica ! 中秋節過後就是秋天了,秋高氣爽是最適合旅遊的日子了,可惜連假已過而且還要寫鐵人賽文章呢~哈哈哈哈哈哈哈5555.....

鐵人賽 Software Development DAY 8

技術 Day 8:506. Relative Ranks

今日題目 題目連結:506. Relative Ranks 題目主題:Array, Sorting, Heap(Priority Queue) 前幾天結束了St...

鐵人賽 Software Development DAY 6

技術 【在廚房想30天的演算法】Day 06 資料結構:連結串列 Linked List

Aloha!又是我少女人妻 Uerica ,今天中秋節大家吃肉了嗎!傳說中后羿的狗狗偷吃了嫦娥吃剩的靈藥,就跟嫦娥一樣一起飛到月亮上,然後把嫦娥跟月亮都吃掉了!...

鐵人賽 Software Development DAY 7

技術 Day 7:225. Implement Stack using Queues

今日題目 題目連結:225. Implement Stack using Queues 題目主題:Stack, Design, Queue 瞭解完Stack跟Q...

鐵人賽 自我挑戰組 DAY 5

技術 【Day 05】LeetCode:Plus One ( 用 JavaScript 學演算法 )

我們繼續透過 LeetCode #66 Plus One 來實際感受解決問題的過程 ( 題目連結 ) 一、理解題目 輸入:一個正整數組成,且從大到小排序好的陣...

鐵人賽 Software Development DAY 5

技術 【在廚房想30天的演算法】Day 05 資料結構之冰箱整理術

Aloha!又是我少女人妻 Uerica!昨晚跟朋友聊天突然發現,如果沒有最終目標或目標不夠明確,那過程中受的每一點日曬雨淋都猶如被鞭刑拷打一樣痛苦,可是如果能...

鐵人賽 自我挑戰組 DAY 22

技術 Day22:[排序演算法]Merge sort - 合併排序法

Merge Sort採用分治法(Divide and Conquer)的方式來處理排序的問題,簡單介紹一下分治法執行的步驟如下 Divide:先將大問題不斷切...

鐵人賽 Software Development DAY 6

技術 Day 6:232. Implement Queue using Stacks

今日題目 題目連結:232. Implement Queue using Stacks題目主題:Stack, Design, Queue 此題目主要是來了解Qu...

鐵人賽 自我挑戰組 DAY 4

技術 【Day 04】LeetCode:Fizz Buzz ( 用 JavaScript 學演算法 )

我們透過 LeetCode #412 Fizz Buzz 來實際感受解決問題的過程 ( 題目連結 ) 一、理解題目 輸入:一個正整數 從 1 到 n,依序判斷...

鐵人賽 Software Development DAY 4

技術 【在廚房想30天的演算法】Day 04 來淺談一下空間複雜度

Aloha!我是中秋節沒有肉烤的少女人妻 Uerica!今年連假沒什麼跟朋友相聚的機會,還收到一堆月餅,根本在考驗意志力。半夜想偷吃月餅的時候我都會 googl...

鐵人賽 Software Development DAY 5

技術 Day 5:20. Valid Parentheses

今日題目 題目連結:20. Valid Parentheses題目主題:String, Stack 玩了幾題排序後,接下來會分享兩種重要的資料結構Stack &...

鐵人賽 Software Development DAY 3

技術 【在廚房想30天的演算法】Day 03 那個時間複雜度會讓人生變複雜嗎?

Aloha!又是我少女人妻Uerica!話說這次有很多以前的朋友同學們一起參加鐵人賽,,不但可以一起加油打氣,因為每天都會去收看大家的文章,真是收穫滿滿~啊。...

鐵人賽 自我挑戰組 DAY 3

技術 【Day 03】如何評估演算法的效率? Big O 與時間複雜度

一、如何判斷演算法的效能 ? 當同樣的問題,可以用不一樣的演算法來解決時,要如何判斷哪個演算法比較好 ?可以使用以下兩個評量指標: 花的時間少,所需步驟少 (...

鐵人賽 Software Development DAY 4

技術 Day 4:88. Merge Sorted Array

今日題目 題目連結:88. Merge Sorted Array題目主題:Array、Two Pointer、Sorting 今天要說說另一種排序法,這次選的題...

鐵人賽 自我挑戰組 DAY 21

技術 Day21:[排序演算法]Heap Sort - 堆積排序法

heap sort的原理是採用max heap這種資料結構來做排序,max heap是一種binary tree,每個節點都會比自己的子節點還大,因此根節點會是...

鐵人賽 自我挑戰組 DAY 20

技術 Day20:[排序演算法]Selection Sort - 選擇排序法

在了解快速排序法的概念之前要先理解partition演算法,不過單用文字敘述還是蠻抽象的,所以搭配示意圖來做說明,假如現在有個陣列[2, 6, 3, 9, 1,...