↓快轉到主要內容

Array

LeetCode 452: Minimum Number of Arrows to Burst Balloons
·1 分鐘
LeetCode Medium Array Greedy Sorting
LeetCode 452 解題筆記:按右端點排序,箭射在右端點,左端點大於箭的位置才需要新的一支;端點相接算重疊
LeetCode 1011: Capacity To Ship Packages Within D Days
·1 分鐘
LeetCode Medium Array Binary-Search
LeetCode 1011 解題筆記:對答案二分,容量範圍是 [max(weights), sum(weights)],用貪心照順序裝來檢查天數
LeetCode 4099: Minimum Operations to Sort With Locked Indices
·2 分鐘
LeetCode Medium Array Merge-Sort Greedy
LeetCode 4099 解題筆記:交換次數就是逆序數;有元素要跨過的上鎖位置一定要解鎖,數出來和 k 比,加上 merge sort 算的逆序數
LeetCode 4097: Minimum Value of Merged Integers
·1 分鐘
LeetCode Easy Array String Simulation
LeetCode 4097 解題筆記:只合併 (0,1)、(2,3)… 這些固定的配對,步長是 2,不是每對相鄰元素
LeetCode 889: Construct Binary Tree from Preorder and Postorder Traversal
·1 分鐘
LeetCode Medium Array Hash-Table Divide-and-Conquer Tree Binary-Tree
LeetCode 889 解題筆記:stack 存目前這條路徑,堆頂等於 postorder 的下一個就代表子樹完成要 pop;新節點先接左邊
LeetCode 1186: Maximum Subarray Sum with One Deletion
·1 分鐘
LeetCode Medium Array Dynamic-Programming
LeetCode 1186 解題筆記:Kadane 加一個狀態:結尾在這裡、還沒刪過 / 已經刪過一個;答案要在每一步都更新
Matrix 矩陣
·3 分鐘
演算法 Matrix Simulation Array
轉置與旋轉、二維 index 和一維序列互換、鄰居與對角線、四個邊界的螺旋走訪
Hash Table 雜湊表
·4 分鐘
演算法 Hash-Table Counting Array
計數與「次數的次數」、把陣列本身當雜湊表(負號標記)、多個 key 同時計數(列、欄、對角線)、固定左端點增量計數,以及用正規化後的 key 分組
Array 陣列掃描
·3 分鐘
演算法 Array Simulation Enumeration
相鄰比較與走過單調段(上坡、下坡、山峰與山谷)、一次掃描維護前綴 / 後綴的最大值與總和、小範圍枚舉配對,以及用 tuple 當 key 處理平手
LeetCode 775: Global and Local Inversions
·2 分鐘
LeetCode Medium Array Math
LeetCode 775 解題筆記:把計數問題轉成存在性問題,O(n) 解決
LeetCode 305: Number of Islands II
·2 分鐘
LeetCode Hard Union-Find Hash-Table Array
LeetCode 305 解題筆記:每加一格陸地島數加 1,跟四周已經是陸地的格子合併,每成功合併一次減 1;重複的位置要跳過
LeetCode 2584: Split the Array to Make Coprime Products
·2 分鐘
LeetCode Hard Math Number-Theory Sieve Hash-Table Array
LeetCode 2584 解題筆記:兩段乘積互質 ⇔ 沒有質因數同時出現在兩段;記下每個質因數最後出現的 index,從左往右擴張 reach,reach == i 時就能在 i 後面切