iT邦幫忙

algorithm相關文章
共有 318 則文章
鐵人賽 Software Development DAY 11

技術 Day 10 還敢下來啊 - Bubble Sort

一種排序資料的方式,實務上不太常使用,除了某些特定情境。相對於其他排序方式,Bubble Sort 效能較差。 儘管如此,作為基礎中的基礎,最好還是要理解其概念...

技術 [LeetCode 筆記] 33. Search in Rotated Sorted Array

前言   這題主要運用到二分搜尋法,是 704. Binary Search 的變化題,目標是找到一個旋轉陣列中指定元素的陣列,用到一個 while 迴圈和其餘...

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

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

LeetCode Top 100 Liked 系列 第 33

技術 [Day 33] Longest Valid Parentheses (Hard)

32. Longest Valid Parentheses Solution 1: Stack class Solution: def longestV...

鐵人賽 DevOps DAY 5

技術 Day 05: 演算法與 Big O Notation

學習原因: 已經有寫程式的基本能力,需要開始對程式的效能有點概念。雖然說先求有,再求好,但也得知道什麼是好。不要求每次都寫出最佳解,但至少要學會判斷哪個比較好。...

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

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

鐵人賽 Software Development DAY 6

技術 Day 5 BO5-2 - Multiple Pointers

Multiple Pointers 技巧是透過建立 pointer 變數代表目前指到哪個位置 (index)。使用兩個 pointer 代表目前查找的位置與範圍...

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

技術 [Day 10] Sorting — Counting Sort / Radix Sort / Bucket Sort

有了昨天的介紹後,我們今天來介紹它們的演算法! Counting Sort Counting Sort 是一種用於排序一組數字的演算法,它主要適用於範圍較小的非...

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

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

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

技術 [Day 25] Permutations (Medium)

46. Permutations Question Given an array nums of distinct integers, return all t...

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

技術 [Day 12] Generate Parentheses (Medium)

22. Generate Parentheses Question Given n pairs of parentheses, write a function...

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

技術 [Day 03] Longest Palindromic Substring (Medium)

5. Longest Palindromic Substring Question Given a string s, return the longest p...

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

技術 [Day 4] Hash Table / Heap

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

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

技術 [Day 18] Edit Distance (Hard)

72. Edit Distance Question Given two strings word1 and word2, return the minimum...

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

技術 [Day 07] Trapping Rain Water (Hard)

42. Trapping Rain Water Question Given n non-negative integers representing an e...

鐵人賽 自我挑戰組 DAY 17

技術 Day-17 深度優先搜尋

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

鐵人賽 自我挑戰組 DAY 2

技術 Day-2 複雜度分析

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

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

技術 [Day 30] Backtracking — Subset Sum

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

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

技術 [Day 04] 3Sum (Medium)

15. 3Sum Question Given an integer array nums, return all the triplets [nums[i],...

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

技術 [Day 29] Backtracking — Graph Coloring

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

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

技術 前言

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

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

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

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

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

技術 [Day 06] Container With Most Water (Medium)

11. Container With Most Water Question You are given an integer array height of...

鐵人賽 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 3
Kotlin is all you need 系列 第 3

技術 [Day 3] Stack / Queue

今天要實做兩個著名的資料結構 Stack 和 Queue Stack 是一種後進先出(Last-In-First-Out,LIFO)的資料結構,其中最後添加...

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

技術 [Day 27] Largest Rectangle in Histogram (Hard)

84. Largest Rectangle in Histogram Question Given an array of integers heights r...

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

技術 [Day 11] 136. Single Number (Easy)

136. Single Number Question Given a non-empty array of integers nums, every elem...

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

技術 [Day 15] Climbing Stairs (Easy)

70. Climbing Stairs Question You are climbing a staircase. It takes n steps to r...

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

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

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

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

技術 [Day 15] Graph — Bellman-Ford Algorithm / Floyd-Warshall Algorithm

Bellman-Ford Algorithm Bellman-Ford 演算法是一種用於解決最短路徑問題的演算法,可以處理包含負權重邊的圖。 演算法 初始化...