接下來幾篇要介紹時間複雜度各種的分析技巧,不過因為個人能力有限,因此這裡開始會大量參考網路資源,尤其是 AA 競程在 YouTube 的時間複雜度教學影片。...
Heap 是一種特別的完全二元樹(Complete Binary Tree),在一顆二元樹中,若除最後一層外的其他層都是充滿節點的,並且最後一層要麼是滿的,要麼...
一個理論的成立,通常也會帶動相關技術的進步。所以我們今天將利用昨天學的漸進符號,反過來改進我們實際在估算複雜度的流程。 實際的複雜度估計 昨天在最後提到了兩個問...
漸進符號 其實如果有看完前四天的文章並有試著跟著練習的話,你對時間複雜度應該有基本的感覺了就像折斷HB鉛筆會發出啪的一聲一樣理所當然 不過接下來說的漸進符號可以...
量級對實際程式的影響 看完昨天一大堆的數學後,我自己都寫得有點頭昏眼花了XD,但是理論也不能脫離現實,因此本段會實際用程式展示一下不同量級對於時間帶來的影響!...
量級與複雜度函數 延續昨天,我們發現就連步驟數都不必估計得很精確,因此我們真正需要的是一個能找到最痛點的估計方法! 不過在此之前,先讓我介紹一個例子:你 14...
延續自昨天,今天要來探討分析解決問題方法的效率的方法! 程式好壞評估 這邊先請大家思考一下:要怎麼精準評估一個程式寫的好不好呢? 一般來說,一個程式 跑得快...
昨天的樹狀結構是描述節點與節點之間,而圖形結構是兩個頂點之間是否相連。在圖形中連接兩點的邊若填上加權值,這類就稱為網路。 圖形簡介 圖形理論最早是18世紀的尤拉...
序言 —— 從不完美中尋找完美 大家好呀!我是暗魂駭客,接下來參賽的30天請各位多多指教!希望我能順利完賽。 我會選擇參賽的理由主要是有兩個:其一是想鍛鍊自己的...
常見演算法簡介二 今天介紹剩下常見的演算法~ 動態規劃法(Dynamic Programming Algorithm) 動態規劃法主要是如果一個問提答案與子問題...
此演算法是由一位叫 Edsger Dijkstra 的荷蘭工程師所發明,他在電腦科學領域貢獻了許多奠定目前網際網路、電腦科學與數位服務等等的基礎。 在學習 D...
當要取得、更新、檢查 Graph 裡所有的節點時就會需要用到 Traversal 方法,常見的使用場景為點對點的網際網路、網站爬蟲、導航、迷宮問題或遊戲類的 A...
簡言之, Graph 就是很多個節點與節點之間的連線所組成的,前幾天提到的 Three 也算是 Graph 的一種 , Graph 主要有以下幾點特色: Gr...
From Medium Hash Table 是用來儲存鍵值對的資料 (key-value pairs)。 而 Hash Table 在找特定資料與新增刪除...
Heap Sort 使用 Binary Heap 處理資料排序,也可視為 Selection Sort 的改良版。 兩者一樣都是將資料分成兩區,一區為排序好的,...
哇~終於來到最後一天了,其實在這幾個禮拜裡面,我禮拜六的文章都是禮拜五晚上熬夜寫出來的,因為我六日白天都常常有事情,所以我都必須半夜就先搞定,不過在這30天自己...
今天我們來做大家比較害怕的DP問題,我個人做下來發現有幾個步驟可以放我們去比較簡易的解決一個DP問題,大雞可以參考看看。 看看在最一開始你能做甚麼? 有沒有B...
Greedy的題目我認為是最難寫的,原因是我們如果沒有經過證明,會很難知道這是可行的答案,不過這邊還是找了幾題想讓大家感受一下Greedy演算法的思想。另外,撇...
今天我們來看看Binary Search類型的題目吧!還記得當初我們提到Binary Search的時候,會覺得這個演算法也不是特別的難,確實如果說單純搜尋一個...
今天我們來看看DFS跟BFS的題目吧! BFS跟DFS的題目有幾件事情要注意一下,這也是我做題下來發現的小技巧。 很多時候DFS跟BFS都是可以解決問題的。...
樹的題目我個人認為也相對簡單的,而且非常非常適合用來練習遞迴思想,有以下的技巧讓大家參考看看。 樹的題目大概7成以上都是用遞迴去思考,要思考的點通常有兩個,分別...
Linked List的題目相對單純一點,大概就一個技巧就是Two Pointer,因為我們只能單向的尋訪鏈結串列,所以時間複雜度通常都是O(n)。 Linke...
總算來到我們寫題目的環節了,首先第一天我們來學習Array類型的題目吧! Array技巧整理 Array類型的題目在我的經驗裡有幾個小技巧,大家可以參考看看。...
昨天看了二元樹的表示方式,今天來看看他的走訪!! 二元樹走訪(Binary Tree Traversal) 我 定義: 拜訪Binary tree 中每個Nod...
大家會不會也常常有那種被時間追著跑的感覺呢(´A`。)最近的我時常有這種感覺,越是這種時候好像越想逃避,但不可以!我們一起加油吧,不管怎麼樣還是要持續努力持續進...
在我們開始進入解題之前這邊有一些解題的小技巧想跟大家分享,對了~這些方法是Python內建的Library,所以其實寫法上比較固定,沒有甚麼特別的。如果讀者用的...
昨天介紹了很多跟樹狀結構有關的名詞,今天開始介紹不同種類的樹吧ヽ(✿゚▽゚)ノ 二元樹(Binary Tree) 定義 可以為空集合 若不為空,則有root及...
終於來到大家所最害怕的Dynamic Programming也就是中文所說的「動態規劃」,希望各位讀者到這邊能依舊繼續堅持下去啦,我會盡力用最簡單的方式講述給大...
BFS全名Breadth-first search中文叫「廣度優先搜尋」,我個人覺得比DFS還要好理解很多,也因為他是「廣度」優先的原因,感覺就像「擴散」開來的...
Singly Linked List 與 Doubly Linked List 差別在 Node 的指標一個只有下一個節點,另個有存上下兩個節點。 Doubly...