前言 今天要解的題目是 Sort Colors(排序顏色)。題目給我們一個陣列 nums,這個陣列裡包含 0、1 和 2,分別代表紅色、白色和藍色。現在要求我...
這次我們來解一道二元樹的題目:Diameter of Binary Tree,這道題目的關鍵在於找到二元樹中兩個節點之間的最長路徑,這段路徑稱為「直徑」。 接...
Line Trip 題目連結 原本想說隨便找一題簡單的來寫,沒想到如此簡單(尷尬) 打題群組,找志同道合的朋友一起努力進群連結 解題 找出兩地最大的距離...
前言 這題標準運用了二分搜尋法,演算法通常需要使用二分思想,即每次能夠排除一半的範圍,快速的找出陣列中所要求的元素位置,這樣時間複雜度可達 O(log n)...
前言 這題是一題動態規劃問題,目標是擷取不連續的元素,全部相加起來選出最優解,因只用了一層迴圈,時間複雜度可估 O(n),這裡有 JAVA 和 Python...
前言 這題有點類似 Prefix Sums 的概念,目標是找到陣列中元素自己以外的所有元素的乘績,放在一個新的陣列裡,雖然有三個迴圈是 O(3n) 的時間複...
終於到最後一天了,在這過程中有著無數次催隊友快點發文,也有幾次差點忘記需要寫文,甚至最近因為社團的事情和比賽沒有什麼時間可以寫文章,所以內容越來越簡單,不過終究...
問題 這邊一樣以 AtCoder Educational DP Contest 的類題來舉例,這題是 D - Knapsack 1,題意大概是有一個背包,裡面只...
問題 這邊一樣以 AtCoder Educational DP Contest 的類題來舉例,這題是 C - Vacation,題意簡單來說就是每天都可以進行一...
問題 這邊一樣以 AtCoder Educational DP Contest 的類題來舉例,這題是 B - Frog 2,簡單來說一隻青蛙可以一次走 ~...
問題 這邊以 AtCoder Educational DP Contest 的類題來舉例,這題是 A - Frog 1,簡單來說一隻青蛙可以一次走兩步或是走一步...
前言 這題學習目標是 Prefix Sums 前綴和的概念, Prefix Sums 通常用於需要頻繁查詢陣列中某一區間的元素和的情況,這裡目標是找到一個陣...
Algorithm Subset Sum 是一個組合優化問題。 給定一個集合(或數組)中的一些整數,是否可以從中選出一些數,使它們的和等於一個特定的目標值。 問...
概念 動態規劃,簡稱 DP,是一種演算法的設計概念。其核心思想是通過解決許多相似性質的小問題,來計算我們所關心的大問題的答案。通常,這些小問題之間存在著遞迴關係...
Algorithm Graph Coloring 是一種圖論中的應用問題,它通常用來解決如何為一個給定的圖中的每個節點分配一種顏色,使得相鄰的節點不具有相同的顏...
概念 貪心,又稱為貪婪演算法,簡單來說它的運作模式就是每一步選擇都選擇當下最好的選項,或是選擇不會比其他選擇還要糟的選項,所以其實大多數時候在實作 greedy...
Algorithm Hamiltonian Cycle 是圖論中的一個重要概念,它描述了在一個給定的圖中是否存在一條環路,該環路包含圖中的每個節點,並且只經過每...
Algorithm 數獨是一個經典的數字拼圖遊戲,目標是填充一個9x9的方格,使每一列、每一行和每一個3x3的小方格內都包含1到9的數字,並且不重複。 解數獨的...
前言 今天的主題是一個演算法的設計方式和思維,因此不會提供具體的例題或實作細節,只會探討以這種設計方式所開發的演算法,以幫助大家理解 概念 分治又稱為「各個擊破...
前言 今天有兩題相關題目,希望大家可以透過這兩題更加熟悉 BFS 的應用、如何撰寫與實作細節 UVa 439 - Knight Moves 題目說明 有一面西洋...
Algorithm N-Queens Problem 目標是在一個大小為N×N的棋盤上放置N個皇后,使得這些皇后彼此不攻擊。 在這個問題中,皇后可以攻擊位於同一...
概念 廣度優先搜尋通常會與深度優先搜尋放在一起比較,因為它們都是圖的走訪方式。前面有提到深度優先搜尋會找出每一種組合,而廣度優先搜尋可以找出最佳方式。以走迷宮的...
Backtracking 是一種用於解決組合問題、排列問題和搜索問題的演算法。 它通常用於試圖找到所有可能的解,或者找到滿足特定條件的解。 這個方法是一種遞迴的...
前言 今天有兩題相關題目,一題是最簡單的應用,另一題算是經典題,希望大家可以更熟悉 DFS 的應用與如何撰寫 UVa 441 - Lotto 題目說明 給定多個...
Minimum Spanning Tree Minimum Spanning Tree 是用來解決與連通圖(Connected Graph)相關的問題。 生成樹...
概念 深度優先搜尋是一種圖的走訪方式。以一個圖的例子來解釋:圖上有編號為 到 的節點。如果我們從節點 開始走,我們會先往與節點 相鄰的節點走,然後一直往...
Job Sequencing Problem Job Sequencing Problem 是一個排程問題,通常在生產和製造領域中遇到。目標是在有限的時間內,安...
「但妳好像沒提過要我學這個啊?」勇者困惑的說。 「不學演算法和資料結構也可以寫程式。」蕭凱琪不在意地擺擺手,但勇者還是一臉不相信,所以只好說出來差別:「⋯⋯但如...
Activity Selection Problem Activity Selection Problem 通常用於時間表排程或資源分配。 該問題要求在一組互相...
前言 今天講解兩題相關題目,希望大家可以透過題目更加瞭解二分搜尋使用時機 TOJ 47 / PB magic spell 題目說明 簡單來說有多筆詢問,要找出詢...