【在廚房想30天的演算法】Day 01 演算法好吃嗎~ Aloha!我是少女人妻Uerica!哈哈哈,過了一年又開始跟老公沒話題了,加上疫情關係天天處一起,我...
使用字典建立圖形資料結構 字典鍵值對應串列如下,配合圖表更容易理解。 G[0]:[1,2,3] G[1]:[0,2,3,4] G[2]:[0,1] G[3]:...
利用將資料切一半的方式來做搜尋,舉例來說,如果要從數字1–100猜終極密碼,如果採用線性搜尋法就是一個一個問?是1嗎?是2嗎?…依序猜下去,很不幸的數字剛好是...
緣起 各位好~我是一個軟體工程師,追求每年都要有不一樣的進步,今年追求的是把自己的基底在打的更穩,之前也沒機會來認真刷題,刷LeetCode就是在練習對演算法及...
Tree and Graph 在開始今天的主題之前,要先來淺談Tree跟Graph。什麼是Tree? Tree Tree 是一種特定的Graph,沒有Loop...
線性搜尋法可以說是最容易理解的搜尋演算法了,相信大家都有過類似的經驗,在圖書館裡想在書架上找一本書"湯姆歷險記",假如書本都是未經排序的,...
堆積(Heap) 堆積,是一種樹狀結構,用於實現「優先佇列(Priority queue)」。Priority queue是資料結構的一種,可以自由追加數據,讀...
簡單來說就是函式自己呼叫自己的狀況,遞迴由兩部分組成 Recursive Case(遞迴情況) - 當函式呼叫自己本身的情況 Base Case(基本狀況) ...
淺談Divide And Conquer Day12有提到Divide and conquer(分治法),簡單的說,將問題分解為小問題後,依次解決,最後再將解決...
雙指針算是一個解題蠻常用的小技巧,雙指針指的是用兩個指針對整個資料做遍歷,而雙指針又依照移動的方向性,分為對撞指針(反方向)和快慢指針(同方向)。 對撞指針 兩...
Divide and conquer(分而治之法) Divide and conquer 顧名思義是一種將問題分解為小問題再依次解決,最後再將解決問題合併的方法...
Traversal翻譯成中文就是遍歷的意思,如果要遍歷tree的每個節點的話,會有兩種方式,Breadth-First Tree Traversal和Dept...
談談插入排序(Insertion Sort) 在開始今天之前,先來看看影片(約2分鐘)吧! https://www.youtube.com/watch?v=O...
想必大家在刷leetcode時候,刷到特定的題目的時候都曾經看過這樣的圖片,這就是Binary tree,但在認識Binary tree之前,讓我們先來認識t...
選擇排序(Select Sort) 選擇排序是重複進行「將數列中最小值,與左邊的值對調」,一直保持由小到大的數列。 選擇排序法使用線性搜尋(Linear Sea...
圖是由節點(node)和邊(edge)所組成的,一個節點可能與多個節點相連著,而這些相連的節點又被稱作相鄰節點(neighbor),圖在生活中應用的例子相當的...
何謂「排序(Sort)」? 排序是指一組資料中,將資料以「由大到小」或「由小到大」的方式重新排列。常見的排序演算法有下列幾種: 氣泡排序法(Bubble So...
Linked List為抽象的資料結構,概念有點像三國的連環船,一艘船(節點)連結著下一艘船(節點),每個節點除了擁有自己的值之外也記錄自己的下一個節點是指向...
在理解hash table之前,先來理解hash(雜湊)吧! 雜湊的特色有以下幾點: 無論原本的內容長短,經過雜湊演算法處理過的值都會是固定長度 經由雜湊處理...
雜湊表,我需要那個酷東西 在線性資料結構中,若要找一個資料,花費的時間複雜度為O(n),或是可以選擇節省時間,但是耗費記憶體容量。若是兩者都不想選,那就需要Ha...
Stack Stack是一種資料結構,遵循著後進先出的原則,最晚放入堆疊的資料會被最先取出(LIFO Last-In-First-Out),最早放入堆疊的資料...
前言 今天聊到了佇列(queue)這種資料結構,佇列和Day5所提到的堆疊常放在一起看,他們的操作方式類似,但特性稍微有一點點的不同。 佇(ㄓㄨˋ)列(que...
Set是JavaScript ES6中新增的資料結構,Set與陣列很類似,允許任何型態的值,跟陣列不同的是所有的值都是唯一的,不允許有重複的值,因此很適合用來去...
聊聊堆疊(Stack) 堆疊是一種後進先出(Last In First Out)(LIFO)的資料結構,換句話說,堆疊就是將數據排成一列,由下往上堆放文件,只能...
Map是JavaScript ES6中新增的資料結構 ,類似於object ,不過Map還是跟object有著以下的差異: Map的key是可以是原始型別、...
Array是資料結構的一種,概念就像置物櫃一樣,每個櫃子都可以存放資料並且都有自己的編號稱為索引值index,Array為連續的記憶體位置,因此讀取資料非常快...
什麼是資料結構? 前一天有提到空間複雜度(Space Complexity),簡單的複習一下,空間複雜度指的是記憶體的使用效率。今天開始談到的資料結構,是可以有...
每一種題目可能有數種的解法,那我們應該怎麼評估每種解法的優劣呢?以前的我應該會回答,當然是越簡短的寫法越好呀! 不過,寫過leetcode之後,會發現有時候很...
圖片來源:*https://www.dcard.tw/f/funny/p/225385728大家小時候應該有看過這個時代的眼淚 ——— 電話簿,厚厚的一本跟字典...
剛開始,我想說點什麼 看過市面上許多解釋演算法的資料,有些書搭配圖片,有些影片淺顯易懂,為了挑戰自己以及將演算法了解透測,開始了這次的鐵人賽。 開始的時候,想要...