iT邦幫忙

algorithm相關文章
共有 318 則文章
鐵人賽 自我挑戰組 DAY 2
競程回顧 系列 第 2

技術 枚舉

Introduction 枚舉是算法的基礎,以最原始的方式,看過所有可能答案。舉個例子,假設現在要將一些數字由小到大排序,最原始的方法就是枚舉所有排列,長度 n...

鐵人賽 自我挑戰組 DAY 1
競程回顧 系列 第 1

技術 前言

前一年,當我還是競程選手的時候,就想挑戰鐵人賽紀錄學到的東西,礙於時間問題而未成。現在,雖然已證明這是條錯誤的路,能力也不復以往,但還是必須達成當時的願望,也算...

鐵人賽 Software Development DAY 30

技術 Day 30:結束後的下一步

回顧 & 總結 今天是最後一天了,來回顧一下這些日子分享及學習的內容,雖然是寫LeetCode的題目為主,但在過程中每天的題目是有選過主題的,一天一天都...

鐵人賽 Software Development DAY 29

技術 Day 29:653. Two Sum IV - Input is a BST

今日題目 題目連結:653. Two Sum IV - Input is a BST 題目主題:Hash Table, Two Pointers, Tree,...

鐵人賽 Software Development DAY 28

技術 Day 28:1. Two Sum

今日題目 題目連結:1. Two Sum 題目主題:Array, Hash Table 簡單說說 Hash Table Hash Table 主要的核心概念是...

鐵人賽 自我挑戰組 DAY 30

技術 Day-30 完賽心得

經過了漫長的30天,終於完賽了,好險暑假有先屯個15篇,要不應該是沒辦法完賽了,由衷地佩服那些真的每日一篇的大大們~~ 一開始參加鐵人賽的動機是覺得大一念完,覺...

鐵人賽 Software Development DAY 27

技術 Day 27:572. Subtree of Another Tree

今日題目 題目連結:572. Subtree of Another Tree 題目主題:Tree, Depth-First Search, String Mat...

鐵人賽 Software Development DAY 30

技術 【Day30】[演算法]-線性搜尋法Linear Search

搜尋(Search) 就是從一群資料中找出符合某些條件的資料,當資料量非常龐大時,如何在短時間內有效率地找到所要的資料,因此,搜尋演算法就變得相當重要。 線性...

鐵人賽 自我挑戰組 DAY 29

技術 Day-29 Depth-First-Search(DFS), 深度優先搜尋

DFS介紹 與昨天BFS不同的地方在於,BFS是給定一個節點s,接著找到s可以到達的所有節點,而DFS是遍歷整張圖,如果我們給定特定的節點s,我們使用BFS可能...

鐵人賽 Modern Web DAY 25
Javascript 從寫對到寫好 系列 第 25

技術 Day 25 - 演算法入門理解

前言 如果昨天是資料結構,那今天必然是來討論演算法啦! 「演算法」是另一個會讓許多非本科系的 developer 嚇到的詞彙,會覺得好像是很高深難懂的技術,應該...

鐵人賽 Software Development DAY 26

技術 Day 26:53. Maximum Subarray (2)

今日題目 題目連結:53. Maximum Subarray 題目主題:Array, Divide and Conquer, Dynamic Programmi...

鐵人賽 自我挑戰組 DAY 28

技術 Day-28 Breadth-First Search(BFS), 廣度優先搜尋

BFS簡介 BFS是用來遍歷一張圖的最簡單演算法,也是很多在圖論演算法的原型,許多演算法都是基於BFS,像是Prim最小生成樹,Dijkstra演算法等等。 給...

鐵人賽 Software Development DAY 25

技術 Day 25:53. Maximum Subarray (1)

今日題目 題目連結:53. Maximum Subarray 題目主題:Array, Divide and Conquer, Dynamic Programmi...

鐵人賽 Software Development DAY 28

技術 【Day28】[演算法]-桶排序法Bucket Sort

桶排序法(Bucket Sort),與前面幾篇的排序法不一樣,前面都是經由兩兩互相比較而成的排序,稱為比較排序法,而桶排序是非比較排序,屬於「分配性」的排序。原...

鐵人賽 自我挑戰組 DAY 27

技術 Day-27 圖論(Graph)基本概念

圖(Graph)的表示 圖(Graph) 圖,是一種記錄節點和節點之間關連的表示法。對於圖,表示是由集合和集合共同構成的集合,集合中的元素為圖中的節點,故又稱點...

鐵人賽 Software Development DAY 24

技術 Day 24:605. Can Place Flowers

今日題目 題目連結:605. Can Place Flowers 題目主題:Array, Greedy 昨天介紹了 Greedy 的基本概念,今天會在練習一題以...

鐵人賽 Software Development DAY 27

技術 【Day27】[演算法]-堆積排序法 Heap Sort

堆積排序法(Heap Sort)原理是利用「堆積」的資料結構為基礎來完成排序。 堆積的介紹可以參考此篇。 操作流程(最大堆積為例): 將陣列轉換最大堆積(...

鐵人賽 自我挑戰組 DAY 26

技術 Day-26 Hash Table-開放定址(Open Addressing)

open addressing概念 前面提到,在Hash table中發生碰撞時,我們會使用chaining的方式處理,也就是在每一個slot中建立一個link...

鐵人賽 Software Development DAY 23

技術 Day 23:1974. Minimum Time to Type Word Using Special Typewriter

今日題目 題目連結:1974. Minimum Time to Type Word Using Special Typewriter 題目主題:String,...

鐵人賽 Software Development DAY 26

技術 【Day26】[演算法]-快速排序法Quick Sort

快速排序法(Quick Sort)又稱分割交換排序法,是目前公認效率極佳的演算法,使用了分治法(Divide and Conquer)的概念。原理是先從原始資料...

鐵人賽 Software Development DAY 22

技術 Day 22:1863. Sum of All Subset XOR Totals

今日題目 題目連結:1863. Sum of All Subset XOR Totals 題目主題:Array, Backtracking, Bit Manip...

鐵人賽 自我挑戰組 DAY 25

技術 Day-25 Hash Function(雜湊函數), 乘法雜湊法, 除法雜湊法

Hash function 一個好的雜湊函數,可以把均勻的分佈在雜湊表的每一個slot中,也就是盡量滿足簡單均勻雜湊的假設,而且分布的均勻性,不會受到元素的影響...

鐵人賽 Software Development DAY 25

技術 【Day25】[演算法]-合併排序法Merge Sort

合併排序法(Merge Sort)原理是會先將原始資料分割成兩個資料列,接著再將兩個資料繼續分割成兩個資料列,依此類推,直到無法再分割,也就是每組都只剩下一筆資...

鐵人賽 自我挑戰組 DAY 24

技術 Day-24 Hash Table(雜湊表)

字典(Dictionary) 抽象資料結構 在字典裡,有個物品,每一樣東西都會跟隨著一個(假設物品和物品之間,不會有相同的),我們可以透過去找出我們想要的物品,...

鐵人賽 Software Development DAY 21

技術 Day 21:401. Binary Watch

今日題目 題目連結:401. Binary Watch 題目主題:Backtracking, Bit Manipulation 簡單說說 Backtracki...

鐵人賽 Software Development DAY 24

技術 【Day24】[演算法]-希爾排序法Shell Sort

希爾排序法(Shell Sort)是插入排序(Insertion Sort)的改良版。可減少插入排序的資料搬移次數,加入了間距(Gap)的概念將資料分成多個小區...

鐵人賽 自我挑戰組 DAY 23

技術 Day-23 AVL Tree

樹的高度(height of the tree) 在Binary Search tree中,我們知道我們可以在的時間內,完成Delete, find min,...

鐵人賽 Software Development DAY 20

技術 Day 20:1566. Detect Pattern of Length M Repeated K or More Times

今日題目 題目連結:1566. Detect Pattern of Length M Repeated K or More Times 題目主題:Array,...

鐵人賽 Software Development DAY 23

技術 【Day23】[演算法]-插入排序法Insertion Sort

插入排序法(Insertion Sort),原理是逐一將原始資料加入已排序好資料中,並逐一與已排序好的資料作比較,找到對的位置插入。例如:已有2筆排序好資料,將...

鐵人賽 Software Development DAY 19

技術 Day 19:1534. Count Good Triplets

今日題目 題目連結:1534. Count Good Triplets 題目主題:Array, Enumeration 分享完Binary Tree等等相關主題...