iT邦幫忙

演算法相關文章
共有 354 則文章
鐵人賽 自我挑戰組 DAY 30

技術 【第三十天 - 結論】

本系列文章複習了一些業界常考演算法 從中也一再的複習/整理自己所學,釐清一些概念,希望大家經過一系列的文章,都能有所收穫,再次提醒,建議練習題目時,除了...

鐵人賽 自我挑戰組 DAY 17

技術 Day 17:圖與演算法

有一些演算法是在圖(graph)上操作,我們可以先想一些實際的例子,例如: 開車的時候,使用導航系統找到最短路徑抵達目的地。 下棋的程式知道如何利用最少...

鐵人賽 自我挑戰組 DAY 29

技術 【第二十九天 - 系統分析 題目分析】

先簡單回顧一下,今天預計分析的題目: 題目連結:https://leetcode.com/problems/design-twitter/ 題目敘述 設計...

鐵人賽 Software Development DAY 14

技術 【在廚房想30天的演算法】Day 14 演算法 : 排序 sort I 氣泡、選擇、插入

Aloha~!又是我少女人妻 Uerica!今天終於可以進入到演算法的章節啦 (歡呼) ~ 之前因為從沒碰過演算法,在整理和學習的時候發現大家都從資料結構開始提...

鐵人賽 影片教學 DAY 29

技術 [Day-29] R語言 - 分群其他演算法 ( Clustering other Algorithms )

您的訂閱是我製作影片的動力訂閱點這裡~ 若內容有誤,還請留言指正,謝謝您的指教

鐵人賽 自我挑戰組 DAY 28

技術 【第二十八天 - 系統設計 介紹】

Q1. 系統設計 是什麼 在業界基本上都是團隊開發專案,每個人負責實作部分功能,而 Leetcode 會列出典型的系統設計,學會看到問題時,會使用什麼方式實...

鐵人賽 自我挑戰組 DAY 27

技術 【第二十七天 - Dijkstra 題目分析】

先簡單回顧一下,今天預計分析的題目: 題目連結:https://leetcode.com/problems/path-with-maximum-prob...

鐵人賽 自我挑戰組 DAY 26

技術 【第二十六天 - Dijkstra 介紹】

Q1. Dijkstra 是什麼? 一種利用 Dynamic Programming ,與 Floyd-Warshall 一樣,是求 Graph 中兩點之間...

鐵人賽 自我挑戰組 DAY 25

技術 【第二十五天 - Floyd-Warshall 題目分析】

先簡單回顧一下,今天預計分析的題目: 題目連結:https://leetcode.com/problems/find-the-city-with-the...

鐵人賽 自我挑戰組 DAY 24

技術 【第二十四天 - Floyd-Warshall介紹】

Q1. Floyd-Warshall 是什麼 一種利用 Dynamic Programming ,求 Graph 中兩點之間最短路徑的演算法。 考慮 A, B...

鐵人賽 自我挑戰組 DAY 9

技術 【Day 09】Sorting:Bubble Sort 氣泡排序法 ( 用 JavaScript 學演算法 )

氣泡排序法是,從第一個元素開始,和相鄰數字比大小,若有需要就交換位置。因此也可稱為交換排序法。它的時間複雜度是 O(n^2)。 一、步驟觀察 遍歷未排序...

鐵人賽 自我挑戰組 DAY 11

技術 Day 11:合併排序(mergesort)

合併排序(merge sort 或 mergesort)是另一種採用分治法的排序演算法。它的步驟是: 分割:用遞迴的方式,將長度為n的數列分成兩半,直到子數列...

鐵人賽 自我挑戰組 DAY 23

技術 【第二十三天 - DFS 題目分析】

先簡單回顧一下,今天預計分析的題目: 112. Path Sum 題目連結:https://leetcode.com/problems/path-sum...

鐵人賽 自我挑戰組 DAY 8

技術 【Day 08】Sorting:Selection Sort 選擇排序法 ( 用 JavaScript 學演算法 )

選擇排序法的概念是,將陣列分為兩個部分,每次掃描未排序的部分時,從數列中拿出最小的數,丟到另一邊,最後就會得到一個完成排序的陣列。它的時間複雜度是 O(n^2...

鐵人賽 自我挑戰組 DAY 10

技術 Day 10:快速排序(quicksort)

看完了分治法與遞迴,再來看這樣的方法如何解決排序問題。 快速排序是一種利用分治法的演算法,比前面提到的排序方法都要快速許多,有些程式語言的函式庫也直接包含了快速...

鐵人賽 自我挑戰組 DAY 7

技術 【Day 07】Sorting:Insertion Sort 插入排序法 ( 用 JavaScript 學演算法 )

插入排序法是將陣列中未排序的元素,逐一與排序好的資料作比較。它的時間複雜度是 (O(n^2))。 一、步驟觀察 標記第一個元素作為已排序的部分 遍歷未排...

鐵人賽 自我挑戰組 DAY 22

技術 【第二十二天 - DFS 介紹】

Q1. DFS 是什麼 Depth-First Search (DFS) 是一種走訪 Graph 的策略,以深度優先,只要遇到能走的路,就先繼續往下走,直...

鐵人賽 自我挑戰組 DAY 9

技術 Day 09:遞迴(2)

上一回我們看到,同樣的跨年倒數任務,可以用迴圈或遞迴的方式完成。 用迴圈通常可以看到某個變數(例如i)記錄著重複執行的次數,可是遞迴的寫法往往更簡潔,好像我們只...

鐵人賽 AI & Data DAY 7

技術 Day 7: 人工智慧在音樂領域的應用 (有趣的AI演算法一)

前面幾天我們講完了AI經過了幾次大起大落,最後在AlphaGo一戰封神後被推向最高端,機器學習/深度學習成為人人所追逐的技術。 但如同我們前面一再強調的: 機器...

鐵人賽 自我挑戰組 DAY 6

技術 【Day 06】LeetCode:Two Sum ( 用 JavaScript 學演算法 )

我們繼續透過 LeetCode #1 Two Sum 來實際感受解決問題的過程 ( 題目連結 ) 一、理解題目 輸入:一個 nums[] 和 target 找...

鐵人賽 自我挑戰組 DAY 21

技術 【第二十一天 - Graph 題目分析】

先簡單回顧一下,今天預計分析的題目: 997. Find the Town Judge 題目連結:https://leetcode.com/proble...

鐵人賽 自我挑戰組 DAY 8

技術 Day 08:分治法與遞迴(1)

再繼續寫其他更快的排序演算法之前,先來寫分治法(divide-and-conquer paradigm),因為後面的演算法跟它大有關係。 分治法是一種演算法設計...

鐵人賽 自我挑戰組 DAY 20

技術 【第二十天 - Graph 介紹】

Q1. Graph 是什麼 Graph 定義:一個 graph 由 數個點( vertex )與數個邊( edge ) 組成 圖形的表示有兩種方法:相鄰矩陣...

鐵人賽 自我挑戰組 DAY 5

技術 【Day 05】LeetCode:Plus One ( 用 JavaScript 學演算法 )

我們繼續透過 LeetCode #66 Plus One 來實際感受解決問題的過程 ( 題目連結 ) 一、理解題目 輸入:一個正整數組成,且從大到小排序好的陣...

鐵人賽 自我挑戰組 DAY 7

技術 Day 07:泡沫排序(bubble sort)

如果一個陣列中的任兩個元素是有排序的,是不是代表整個陣列就是排序好的?這就是泡沫排序的想法。 如果我們想將一列數字由小到大排好,用泡沫排序的步驟是: 兩個相鄰...

鐵人賽 自我挑戰組 DAY 4

技術 【Day 04】LeetCode:Fizz Buzz ( 用 JavaScript 學演算法 )

我們透過 LeetCode #412 Fizz Buzz 來實際感受解決問題的過程 ( 題目連結 ) 一、理解題目 輸入:一個正整數 從 1 到 n,依序判斷...

鐵人賽 自我挑戰組 DAY 19

技術 【第十九天 - Binary Tree題目分析】

先簡單回顧一下,今天預計分析的題目:94. Binary Tree Inorder Traversal 題目敘述:https://leetcode.co...

鐵人賽 Software Development DAY 4

技術 【在廚房想30天的演算法】Day 04 來淺談一下空間複雜度

Aloha!我是中秋節沒有肉烤的少女人妻 Uerica!今年連假沒什麼跟朋友相聚的機會,還收到一堆月餅,根本在考驗意志力。半夜想偷吃月餅的時候我都會 googl...

鐵人賽 自我挑戰組 DAY 6

技術 Day 06:選擇排序(selection sort)

先前看到了常見執行時間的圖形,線條越平代表演算法速度越快,越陡則代表越慢。 我們會發現O(log n)的二分搜尋其實算是數一數二快速的演算法,不過二分搜尋的條件...

鐵人賽 自我挑戰組 DAY 18

技術 【第十八天 - Binary Tree介紹】

Q1. binary tree 是什麼 二元樹 (binary tree) 是一種資料結構,應用非常廣泛,是資訊人必學的基礎概念 二元樹是圖論中的一種樹,這種...