iT邦幫忙

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

技術 Day 11 選我選我選我選我 - Selection Sort

Selection Sort 實作上是遍歷一次陣列,找出最小值,並將最小值與陣列的第一個值交換,以此類推,再遍歷一次陣列 (先前排序好的位置可以略過) 找出最小...

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

技術 [Day 16] Longest Increasing Subsequence (Medium)

300. Longest Increasing Subsequence Question Given an integer array nums, return...

鐵人賽 Software Development DAY 9

技術 Day 8 BO5-5 - Recursion

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

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

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

技術 [Day 08] Valid Parentheses (Easy)

20. Valid Parentheses Question Given a string s containing just the characters '...

鐵人賽 Software Development DAY 15

技術 Day 15:101. Symmetric Tree

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

LeetCode Top 100 Liked 系列 第 68

技術 [Day 65 - 2] Subarray Sum Equals K (Medium)

560. Subarray Sum Equals K Solution 1: Brute-Force (TLE) class Solution: def...

LeetCode Top 100 Liked 系列 第 65

技術 [Day 63 ] Binary Tree Inorder Traversal (Easy)

94. Binary Tree Inorder Traversal Solution 1: Recursive class Solution: def...

LeetCode Top 100 Liked 系列 第 32

技術 [Day 32] Coin Change (Medium)

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

LeetCode Top 100 Liked 系列 第 49

技術 [Day 49] String to Integer (Medium)

8. String to Integer (atoi) Solution 1: Brute-Force def myAtoi(self, s: str)...

LeetCode Top 100 Liked 系列 第 51

技術 [Day 51] Move Zeroes (Easy)

283. Move Zeroes Solution 1: Two Pointers class Solution: def moveZeroes(sel...

技術 [LeetCode 筆記] 169. Majority Element

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

技術 [LeetCode 筆記] 53. Maximum Subarray

前言   這題是一個經典的動態規劃問題,目標是找到一個陣列中連續子陣列的合還有回傳最大值,時間複雜度可達 O(n),這裡有 JAVA 和 Python 的寫法。...

LeetCode Top 100 Liked 系列 第 52

技術 [Day 52] Linked List Cycle (Easy)

141. Linked List Cycle Solution 1: Hash class Solution: def hasCycle(self, h...

鐵人賽 Software Development DAY 23

技術 Day 22 這篇若...不看...財哥也...感嘆... - Tree Traversal

由於樹狀結構並不像 Lined List 或陣列那樣是線狀的,故需要遍歷整個樹狀結構是很複雜的,而且有多種方式。 大致上分為以下兩種: Breadth-fir...

LeetCode Top 100 Liked 系列 第 71

技術 [Day 67 - 2] Swap Nodes in Pairs (Medium)

24. Swap Nodes in Pairs Solution 1: Recursive class Solution: def swapPairs(...

技術 [LeetCode 筆記] 35. Search Insert Position

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

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

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

技術 [LeetCode 筆記] 704. Binary Search

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

LeetCode Top 100 Liked 系列 第 43

技術 [Day 43] Sort List (Medium)

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

LeetCode Top 100 Liked 系列 第 50

技術 [Day 50] First Missing Positive (Hard)

41. First Missing Positive Solution 1: Sort class Solution: def firstMissing...

技術 [LeetCode 筆記] 198. House Robber

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

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

技術 [Day 30] Merge k Sorted Lists (Hard)

23. Merge k Sorted Lists Question You are given an array of k linked-lists lists...

LeetCode Top 100 Liked 系列 第 53

技術 [Day 53] Validate Binary Search Tree (Medium)

98. Validate Binary Search Tree Solution 1: DFS class Solution: def _isValid...

技術 [LeetCode 筆記] 121. Best Time to Buy and Sell Stock

前言   究竟何時才是買賣股票的最好時機呢? 這題邏輯很生活化,就是把一個陣列內所有的價格遍歷完,低買高賣後把最大的差價回傳出來,這題使用了單迴圈遍歷陣列裡所有...

LeetCode Top 100 Liked 系列 第 46

技術 [Day 46] Zigzag Conversion (Medium)

6. Zigzag Conversion Solution 1: 2D-Array + Simulation (模擬 Z 字形移動) class Solutio...

LeetCode Top 100 Liked 系列 第 38

技術 [Day 38] Minimum Window Substring (Hard)

76. Minimum Window Substring Solution 1: Slide Window + Hash from collections im...

LeetCode Top 100 Liked 系列 第 54

技術 [Day 54 - 1] Binary Tree Maximum Path Sum (Hard)

124. Binary Tree Maximum Path Sum Solution 1: DFS + Recursive # Definition for a...

鐵人賽 Software Development DAY 19

技術 Day 18 快還要更快 - Quick Sort

Quick Sort 使用基準值 (pivot) 比對排序,並透過 Recursion 的技巧,不斷將每個元素放到正確的位置上。 第一步是從陣列中取出一個數字當...

LeetCode Top 100 Liked 系列 第 41

技術 [Day 41] Next Permutation (Medium)

31. Next Permutation Solution 1: Two Pointer class Solution: ""&qu...