iT邦幫忙

algorithm相關文章
共有 318 則文章
鐵人賽 DevOps DAY 5

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

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

技術 [LeetCode 筆記] 56. Merge Intervals

前言   這題運用雙指針來實作,目標是把陣列中的元素重疊的部分合併起來,有使用到合併和排序的演算法,時間複雜度估為 O(n log n),這裡有 JAVA 和...

達標好文 技術 [LeetCode 筆記] 200. Number of Islands

前言   這題是一個經典的 DFS 深度優先搜尋問題,聽說是 FAANG 高頻題(?,目標是在二維陣列裡找到連續出現 1 的範圍 (島嶼),計算島嶼共出現幾個,...

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

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

技術 [LeetCode 筆記] 215. Kth Largest Element in an Array

前言   解這題最重要的是學習 Quick Sort 快速排序演算法是如何運作的,實作中間也可學到遞迴的概念,題目目標是把陣列從小到大排序後,找到給定的元素大小...

技術 [LeetCode 筆記] 206. Reverse Linked List

前言   這是一題單向鏈結串列反轉的題目,運用指標的算法,目標是將原本的鏈結串列倒序排列,此演算有使用到一個 while 迴圈,則時間複雜度估 O(n),這裡有...

技術 [LeetCode 筆記] 11. Container With Most Water

前言   這題是一個運用雙指標的算法,目標是找到可裝最多水的容器 (面積),只需一個 while 迴圈就可依依遍歷到最大的面積答案,時間複雜度可估 O(n),這...

技術 [LeetCode 筆記] 15. 3Sum

前言   這題是一個運用指標的算法,而且是用三個指標來追蹤,運用指標依序掃瞄出題目所要的元素並加起來,使用到了 for、while 兩個迴圈,時間複雜度估達 O...

技術 [LeetCode 筆記] 53. Maximum Subarray

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

技術 [LeetCode 筆記] 704. Binary Search

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

技術 [LeetCode 筆記] 118. Pascal's Triangle

前言   這題的大方向是要如何找到上一行的上一列的元素來做兩兩相加的運算,像是動態規劃的邏輯思考,需要用到雙迴圈的關係,時間複雜度達 O(n²),這裡有 JAV...

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

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

技術 [LeetCode 筆記] 283. Move Zeroes

前言   這題題目要設法將陣列中的非零元素全部往前移,題目要求不能配置新的空間,所以不能使用輔助的 Array,那我們就由本身的陣列來做循環添加,這是比較簡單的...

技術 [LeetCode 筆記] 136. Single Number

前言   這題目的邏輯是找出陣列中只出現過一次的元素,直覺是用一層 for 迴圈遍歷整個陣列後,使用 HashMap 來儲存元素跟出現的次數,最後再遍歷 Map...

技術 [LeetCode 筆記] 169. Majority Element

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

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

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

技術 [LeetCode 筆記] 1. Two Sum

前言   我想這題是正要開始寫 LeetCode 的人,大部分的人的第一題吧,這題是個基本題算在 easy 的題型,看到題目直接就會想到使用雙迴圈的寫法,不過雙...

LeetCode Top 100 Liked 系列 第 77

技術 [Day 72 ] Remove Element (Easy)

27. Remove Element Solution 1: Two Pointer + Swap class Solution: def remove...

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 系列 第 75

技術 [Day 70] Min Stack (Medium)

155. Min Stack Solution 1: Use Two Stack class MinStack: def __init__(self)...

LeetCode Top 100 Liked 系列 第 74

技術 [Day 69] Reverse Linked List II (Medium)

92. Reverse Linked List II Solution 1: Recursive Swap NodeValue class Solution:...

LeetCode Top 100 Liked 系列 第 73

技術 [Day 68 - 2] Find the Index of the First Occurrence in a String (Medium)

28. Find the Index of the First Occurrence in a String Solution 1: Brute-Force c...

LeetCode Top 100 Liked 系列 第 72

技術 [Day 68 - 1] Maximal Rectangle (Hard)

85. Maximal Rectangle Solution 1: Brute-Force # Convert to a "largest recta...

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 Top 100 Liked 系列 第 70

技術 [Day 67 - 1] Search Insert Position (Easy)

35. Search Insert Position Solution 1: Binary Search class Solution: def sea...

LeetCode Top 100 Liked 系列 第 69

技術 [Day 66] Perfect Squares (Medium)

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

技術 leetcode 365天 #Day109

本人快速地發呆的過程~ Determine if String Halves Are Alike (easy)https://leetcode.com/pr...

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 系列 第 67

技術 [Day 65 - 1] Merge Sorted Array (Easy)

88. Merge Sorted Array Solution 1: Two Pointers class Solution: def merge(se...

LeetCode Top 100 Liked 系列 第 66

技術 [Day 64 ] Merge Intervals (Medium)

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