iT邦幫忙

algorithm相關文章
共有 320 則文章

技術 Day23 X Leetcode:排序顏色 Sort Colors

前言 今天要解的題目是 Sort Colors(排序顏色)。題目給我們一個陣列 nums,這個陣列裡包含 0、1 和 2,分別代表紅色、白色和藍色。現在要求我...

技術 Day19 X Leetcode:二元樹的直徑 Diameter of Binary Tree

這次我們來解一道二元樹的題目:Diameter of Binary Tree,這道題目的關鍵在於找到二元樹中兩個節點之間的最長路徑,這段路徑稱為「直徑」。 接...

技術 [一天至少一題直到ICPC開賽009]解題: Line Trip(12/18)

Line Trip 題目連結 原本想說隨便找一題簡單的來寫,沒想到如此簡單(尷尬) 打題群組,找志同道合的朋友一起努力進群連結 解題 找出兩地最大的距離...

技術 [LeetCode筆記] 34. Find First and last Position of Element in Sorted Array

前言   這題標準運用了二分搜尋法,演算法通常需要使用二分思想,即每次能夠排除一半的範圍,快速的找出陣列中所要求的元素位置,這樣時間複雜度可達 O(log n)...

技術 [LeetCode 筆記] 198. House Robber

前言   這題是一題動態規劃問題,目標是擷取不連續的元素,全部相加起來選出最優解,因只用了一層迴圈,時間複雜度可估 O(n),這裡有 JAVA 和 Python...

技術 [LeetCode 筆記] 238. Product of Array Except Self

前言   這題有點類似 Prefix Sums 的概念,目標是找到陣列中元素自己以外的所有元素的乘績,放在一個新的陣列裡,雖然有三個迴圈是 O(3n) 的時間複...

鐵人賽 自我挑戰組 DAY 30

技術 Day30 - 從競賽程式學習資料結構與演算法-最後總結

終於到最後一天了,在這過程中有著無數次催隊友快點發文,也有幾次差點忘記需要寫文,甚至最近因為社團的事情和比賽沒有什麼時間可以寫文章,所以內容越來越簡單,不過終究...

鐵人賽 自我挑戰組 DAY 29

技術 Day29 - 動態規劃經典題-背包問題

問題 這邊一樣以 AtCoder Educational DP Contest 的類題來舉例,這題是 D - Knapsack 1,題意大概是有一個背包,裡面只...

鐵人賽 自我挑戰組 DAY 28

技術 Day28 - 動態規劃例題-不定型

問題 這邊一樣以 AtCoder Educational DP Contest 的類題來舉例,這題是 C - Vacation,題意簡單來說就是每天都可以進行一...

鐵人賽 自我挑戰組 DAY 27

技術 Day27 - 動態規劃經典題-爬樓梯問題(再改)

問題 這邊一樣以 AtCoder Educational DP Contest 的類題來舉例,這題是 B - Frog 2,簡單來說一隻青蛙可以一次走 ~...

鐵人賽 自我挑戰組 DAY 26

技術 Day26 - 動態規劃經典題-爬樓梯問題(改)

問題 這邊以 AtCoder Educational DP Contest 的類題來舉例,這題是 A - Frog 1,簡單來說一隻青蛙可以一次走兩步或是走一步...

技術 [LeetCode 筆記] 560. Subarray Sum Equals K

前言   這題學習目標是 Prefix Sums 前綴和的概念, Prefix Sums 通常用於需要頻繁查詢陣列中某一區間的元素和的情況,這裡目標是找到一個陣...

鐵人賽 Kotlin DAY 30
Kotlin is all you need 系列 第 30

技術 [Day 30] Backtracking — Subset Sum

Algorithm Subset Sum 是一個組合優化問題。 給定一個集合(或數組)中的一些整數,是否可以從中選出一些數,使它們的和等於一個特定的目標值。 問...

鐵人賽 自我挑戰組 DAY 23

技術 Day23 - 動態規劃(Dynamic Programming)

概念 動態規劃,簡稱 DP,是一種演算法的設計概念。其核心思想是通過解決許多相似性質的小問題,來計算我們所關心的大問題的答案。通常,這些小問題之間存在著遞迴關係...

鐵人賽 Kotlin DAY 29
Kotlin is all you need 系列 第 29

技術 [Day 29] Backtracking — Graph Coloring

Algorithm Graph Coloring 是一種圖論中的應用問題,它通常用來解決如何為一個給定的圖中的每個節點分配一種顏色,使得相鄰的節點不具有相同的顏...

鐵人賽 自我挑戰組 DAY 22

技術 Day22 - 貪心(greedy)

概念 貪心,又稱為貪婪演算法,簡單來說它的運作模式就是每一步選擇都選擇當下最好的選項,或是選擇不會比其他選擇還要糟的選項,所以其實大多數時候在實作 greedy...

鐵人賽 Kotlin DAY 28
Kotlin is all you need 系列 第 28

技術 [Day 28] Backtracking — Hamiltonian Cycle

Algorithm Hamiltonian Cycle 是圖論中的一個重要概念,它描述了在一個給定的圖中是否存在一條環路,該環路包含圖中的每個節點,並且只經過每...

鐵人賽 Kotlin DAY 27
Kotlin is all you need 系列 第 27

技術 [Day 27] Backtracking — Sudoku Solver

Algorithm 數獨是一個經典的數字拼圖遊戲,目標是填充一個9x9的方格,使每一列、每一行和每一個3x3的小方格內都包含1到9的數字,並且不重複。 解數獨的...

鐵人賽 自我挑戰組 DAY 21

技術 Day21 - 分治(divide & conquer)

前言 今天的主題是一個演算法的設計方式和思維,因此不會提供具體的例題或實作細節,只會探討以這種設計方式所開發的演算法,以幫助大家理解 概念 分治又稱為「各個擊破...

鐵人賽 自我挑戰組 DAY 20

技術 Day-20 廣度優先搜尋例題講解

前言 今天有兩題相關題目,希望大家可以透過這兩題更加熟悉 BFS 的應用、如何撰寫與實作細節 UVa 439 - Knight Moves 題目說明 有一面西洋...

鐵人賽 Kotlin DAY 26
Kotlin is all you need 系列 第 26

技術 [Day 26] Backtracking — N-Queens Problem

Algorithm N-Queens Problem 目標是在一個大小為N×N的棋盤上放置N個皇后,使得這些皇后彼此不攻擊。 在這個問題中,皇后可以攻擊位於同一...

鐵人賽 自我挑戰組 DAY 19

技術 Day-19 廣度優先搜尋

概念 廣度優先搜尋通常會與深度優先搜尋放在一起比較,因為它們都是圖的走訪方式。前面有提到深度優先搜尋會找出每一種組合,而廣度優先搜尋可以找出最佳方式。以走迷宮的...

鐵人賽 Kotlin DAY 25
Kotlin is all you need 系列 第 25

技術 [Day 25] Backtracking

Backtracking 是一種用於解決組合問題、排列問題和搜索問題的演算法。 它通常用於試圖找到所有可能的解,或者找到滿足特定條件的解。 這個方法是一種遞迴的...

鐵人賽 自我挑戰組 DAY 18

技術 Day-18 深度優先搜尋例題講解

前言 今天有兩題相關題目,一題是最簡單的應用,另一題算是經典題,希望大家可以更熟悉 DFS 的應用與如何撰寫 UVa 441 - Lotto 題目說明 給定多個...

鐵人賽 Kotlin DAY 24
Kotlin is all you need 系列 第 24

技術 [Day 24] Greedy Algorithm — Minimum Spanning Tree / Shortest Path

Minimum Spanning Tree Minimum Spanning Tree 是用來解決與連通圖(Connected Graph)相關的問題。 生成樹...

鐵人賽 自我挑戰組 DAY 17

技術 Day-17 深度優先搜尋

概念 深度優先搜尋是一種圖的走訪方式。以一個圖的例子來解釋:圖上有編號為 到 的節點。如果我們從節點 開始走,我們會先往與節點 相鄰的節點走,然後一直往...

鐵人賽 Kotlin DAY 23
Kotlin is all you need 系列 第 23

技術 [Day 23] Greedy Algorithm — Job Sequencing Problem / Fractional Knapsack Problem

Job Sequencing Problem Job Sequencing Problem 是一個排程問題,通常在生產和製造領域中遇到。目標是在有限的時間內,安...

鐵人賽 Kotlin DAY 17

技術 Day09#2 經典但不實用的氣泡排序

「但妳好像沒提過要我學這個啊?」勇者困惑的說。 「不學演算法和資料結構也可以寫程式。」蕭凱琪不在意地擺擺手,但勇者還是一臉不相信,所以只好說出來差別:「⋯⋯但如...

鐵人賽 Kotlin DAY 22
Kotlin is all you need 系列 第 22

技術 [Day 22] Greedy Algorithm — Activity Selection Problem / Huffman Coding

Activity Selection Problem Activity Selection Problem 通常用於時間表排程或資源分配。 該問題要求在一組互相...

鐵人賽 自我挑戰組 DAY 16

技術 Day-16 二分搜尋例題講解

前言 今天講解兩題相關題目,希望大家可以透過題目更加瞭解二分搜尋使用時機 TOJ 47 / PB magic spell 題目說明 簡單來說有多筆詢問,要找出詢...