iT邦幫忙

algorithm相關文章
共有 321 則文章
鐵人賽 Kotlin DAY 1
Kotlin is all you need 系列 第 1

技術 [Day 1] Why Kotlin ?

開賽前言 以前都有想過用一種程式語言實作基本演算法,之前試過 C++ 和 Python,不過寫幾天後就沒碰了 :) 這次是透過 Kotlin ~ 以前在 Mo...

鐵人賽 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,...

LeetCode Top 100 Liked 系列 第 32

技術 [Day 32] Coin Change (Medium)

322. Coin Change Solution 1: DP (Amount outer loop) class Solution: def coin...

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

技術 [Day 6] Sorting — Bubble Sort / Selection Sort

Sorting 剛開始先介紹排序,把數字由小排到大或由大排到小。 以下是相關排序演算法的時間複雜度跟空間複雜度 今天是 Bubble Sort 和 Selec...

鐵人賽 Software Development DAY 9

技術 Day 8 BO5-5 - Recursion

Recursion 的定義是一個會呼叫自己的函式。 Recursion 技巧在很多地方都有用到,例如: JSON.stringify & JSON....

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

技術 [Day 14] Graph — Topological Sort / Dijkstra's Algorithm

Topological Sort Topological Sort 是一種在有向無環圖(DAG)中對節點進行排序的算法。 它通常應用於解決依賴關係的排序問題,例...

鐵人賽 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 是一個排程問題,通常在生產和製造領域中遇到。目標是在有限的時間內,安...

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

技術 枚舉

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

鐵人賽 Software Development DAY 16

技術 Day 16:108. Convert Sorted Array to Binary Search Tree

今日題目 題目連結:108. Convert Sorted Array to Binary Search Tree 題目主題:Array, Divide and...

鐵人賽 Software Development DAY 13

技術 Day 13:100. same tree

今日題目 題目連結:100. same tree 題目主題:Tree, Depth-First Search, Breadth-First Search, Bi...

鐵人賽 Software Development DAY 15

技術 Day 15:101. Symmetric Tree

今日題目 題目連結:101. Symmetric Tree 題目主題:Tree, Depth-First Search, Breadth-First Searc...

技術 [LeetCode 筆記] 169. Majority Element

前言   這題目的邏輯是找出陣列中出現次數過半的元素,這裡有使用一層 for 迴圈遍歷整個陣列後,用 HashMap 來操作存儲查找,Map 時間可以視為常數時...

技術 [用 Python 解 LeetCode] (004) 277. Find the Celebrity

這題因為 leetcode鎖起來,所以我們跑去做Lintcode上面的第 645題 Find the Celebrity 題幹懶人包 從派對裡面找名人,要是名人...

鐵人賽 Software Development DAY 10

技術 Day 9 絕命雙排 - Linear Search & Binary Search

Linear Search Linear Search 非常常見,甚至在學迴圈時就已經用過了。以下直接給範例練習! Practice - Linear Sear...

LeetCode Top 100 Liked 系列 第 36

技術 [Day 36] Intersection of Two Linked Lists (Easy)

160. Intersection of Two Linked Lists Solution 1: Brute-Force class Solution:...

鐵人賽 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,...

LeetCode Top 100 Liked 系列 第 40

技術 [Day 40] Subsets (Medium)

78. Subsets Solution 1: Bitwise class Solution(object): def subsets(self, nu...

鐵人賽 自我挑戰組 DAY 30

技術 Day-30 完賽心得

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

技術 [LeetCode 筆記] 287. Find the Duplicate Number

前言   這題是一題把陣列當成類似 linked list 的題目,目標是找到陣列中重複的元素,因它只對陣列進行了兩次循環,而每次循環都是線性時間的運作,時間複...

LeetCode Top 100 Liked 系列 第 59

技術 [Day 58] Word Break (Medium)

139. Word Break Solution 1: DFS (TLE) class Solution: def wordBreak(self, s:...

LeetCode Top 100 Liked 系列 第 69

技術 [Day 66] Perfect Squares (Medium)

279. Perfect Squares Solution 1: DP (Bottom-up) class Solution: def numSquar...

鐵人賽 自我挑戰組 DAY 2

技術 Day-2 複雜度分析

何謂複雜度 通常在解題或打競程時都會看到題目有時間與記憶體限制,而這基本上會跟你程式的時間/空間複雜度(Time/Space Complexity)有關。 ex...

鐵人賽 自我挑戰組 DAY 23

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

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

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

技術 [Day 4] Hash Table / Heap

Hash Table Hash Table(哈希表),是透過 Hash Function 計算出一個 key 與 value 所對應的位置,進而建立雜湊表格,而...

鐵人賽 自我挑戰組 DAY 1
LeetCode Top 100 Liked 系列 第 1

技術 [Day 01] Two Sum (Easy)、Add Two Numbers (Medium)

1. Two Sum (Easy) Question Given an array of integers nums and an integer target...

技術 [LeetCode 筆記] 704. Binary Search

前言   這題用的技巧是二分搜尋法,原理是每次循環都會將搜索範圍縮小一半。演算法通常需要使用二分思想,即每次能夠排除一半的範圍,快速的找出陣列中所要求的元素位置...

LeetCode Top 100 Liked 系列 第 66

技術 [Day 64 ] Merge Intervals (Medium)

56. Merge Intervals Solution 1: Sort class Solution: def merge(self, interva...

LeetCode Top 100 Liked 系列 第 76

技術 [Day 71] Word Search (Medium)

79. Word Search Solution 1: DFS class Solution: def exist(self, board: List[...

LeetCode Top 100 Liked 系列 第 43

技術 [Day 43] Sort List (Medium)

148. Sort List Solution 1: Merge Sort # Definition for singly-linked list. # cla...

鐵人賽 Software Development DAY 18

技術 Day 17 切出去合進來 升職發大財 - Merge Sort

Merge Sort 是一種透過切分資料再一一合併的排序演算法。 Merge Sort 有使用到 Divide and Conquer 與 Recursion...