第一個演算法既是叫搜尋,那我們先想像一些生活中找東西的情境。 如果有一疊照座號排好的作業,要找出28號同學的,我們很可能會先拿開上面半疊,從中間開始找。 或者如...
題目來源:Count and Say 問題: 這個「數數字」的數列的格式為: 1, 11, 21, 1211, 111221, ... 其中 1 要念 一個...
目標:這題主要目的在於延伸前面解過的題目,再進行一點變化,同樣屬於DP的範疇。 原題: Question: A robot is located at the...
前言: 大家好,第一次發文往後請各位前輩多多指教,我文筆很糟,有手殘的地方請見諒。首先先感謝朋友介紹Google Code Jam這活動,但錯過了沒機會參加到,...
今天再來一天Stack,昨天說到Stack的應用有很多種,今天就來舉幾個實例給大家看吧ξ( ✿>◡❛)▄︻▇▇〓▄︻┻┳═一 Stack Permutation...
一路到了鐵人賽最後階段,最後寫兩個完全不同但都蠻有趣的演算法。 我們之前寫到SHA家族演算法可以用來為資料加密,今天的演算法也跟加密有關,不過並不是直接用來改變...
#328 - Odd Even Linked List 連結: https://leetcode.com/problems/odd-even-linked-...
上一回我們說旅行推銷員問題(TSP)是一個NP困難問題,沒有快速的演算法可以解決。 那一個問題怎樣叫做「困難」,演算法又要多快才叫做快呢? 如果說所有運算問題有...
Tree Sort 簡而言之就是使用 Tree 結構來排序資料,建議先看資料結構篇章中的 Binary Search Tree 和 Tree Traversal...
輕鬆搞懂演算法: 演算法概論與複雜度(BigO)呼,昨天趕稿趕到凌晨作影片真的比想像中的累阿QQ希望這系列影片可以幫助到想學習的人 程式新手學習發問區,問都給...
problem 輸入為一個不為空的字串,回傳該字串經過變動長度編碼 (run-length encoding) 的結果。 sample input:string...
陣列是什麼 陣列屬於一種靜態的資料結構,而且他會具有以下幾種特性: 需要使用一段連續的記憶體空間來儲存 用來儲存一群相同類型的資料 可以透過索引值快速存取想要...
Q1. Stack 是什麼 一種資料結構的概念,假設有一個容器是裝馬克杯的盒子 (這個盒子下面是封死的,無法拿東西) 現在第一步有小明、小美、...
記憶化(Memoization) 鐵人賽上一篇費氏數列的遞迴比較慢,但是遞迴可不可以加速呢? 答案是可以的,我們可以使用 記憶化(Memoization) 技術...
先前我們利用廣度優先搜尋,找到圖中兩節點之間的最短路徑,其中所謂「最短」是指「經過最少的邊」。可是這樣的路徑卻未必是最快路徑,因為現實生活中不會每條路徑的距離或...
Q1. Bubble Sort 是什麼? 一種排序方式,bubble sort 是透過兩兩相比,將正確順序逐漸往後/往前放。每次跑完一次全部數字比對,就會有...
昨天我們提到了資料結構跟演算法的定義及他們之間的關係,我們也可以知道,對於同一個問題,我們可以使用很多不同種類的演算法來解決他,但要怎麼判斷哪種演算法比較好呢?...
自幼時玩過迷魂車之後,心中就埋下了一個製作開車遊戲的夢想。不過長大後開始寫遊戲,卻一直沒花時間想通這個四輪車前輪轉後輪不轉的運動軌跡,到底要如何不藉助物理引擎的...
#733 - Flood Fill 連結: https://leetcode.com/problems/flood-fill/ 難度: Easy 感謝大家觀...
能夠完賽的人是鬼吧本文會提到做 singular linked list 常犯錯誤、如何避免,與常見的技巧。此系列 Leetcode 篇不介紹基本資料結構。 常...
Q1. Dijkstra 是什麼? 一種利用 Dynamic Programming ,與 Floyd-Warshall 一樣,是求 Graph 中兩點之間...
#402 - Remove K Digits 連結: https://leetcode.com/problems/remove-k-digits/ 難度: M...
前言 這題看到的時候很天真的直接切水平判斷,再切垂直判斷,結果當然是連下面測資都過不了,因為少判斷每個Block擁有的餅乾數量,但慶幸不用重寫,只要再多一個判斷...
#169 - Majority Element 連結: https://leetcode.com/problems/majority-element/ 難度...
相信就算沒玩過射擊遊戲的同學,也多少看過別人玩Counter Strike或Call of Duty之類的遊戲吧。在類似的槍戰遊戲中都會出現射擊瞄準用的準星。一...
機器學習(以下簡稱ML)的核心其實就是數學運算,而且只能運算特定類型的資料型式。但是在真實世界中,我們的很多資料是無法能夠立刻丟進去做數學運算的。例如,決策樹(...
【在廚房想30天的演算法】Day 01 演算法好吃嗎~ Aloha!我是少女人妻Uerica!哈哈哈,過了一年又開始跟老公沒話題了,加上疫情關係天天處一起,我...
本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 昨天我們介紹了Binary Search Tree(BST),而今天要講的B...
合併排序(merge sort 或 mergesort)是另一種採用分治法的排序演算法。它的步驟是: 分割:用遞迴的方式,將長度為n的數列分成兩半,直到子數列...
Counting Sort 是以數字為基礎的排序演算法,其需要定義最大範圍值,作為排序用,整體算法較簡單且速度較快,缺點就是排序元素需要確定在最大範圍值內且需要...