↓快轉到主要內容

Counting

Hash Table 雜湊表
·4 分鐘
演算法 Hash-Table Counting Array
計數與「次數的次數」、把陣列本身當雜湊表(負號標記)、多個 key 同時計數(列、欄、對角線)、固定左端點增量計數,以及用正規化後的 key 分組
Merge Sort 與分治計數
·4 分鐘
演算法 Merge-Sort Divide-and-Conquer Sorting Counting
Merge sort 模板、逆序對類計數題的計數位置、linked list 版本與常見錯誤
LeetCode 493: Reverse Pairs
·3 分鐘
LeetCode Hard Merge-Sort Divide-and-Conquer Two-Pointers Counting
LeetCode 493 解題筆記:計數條件和排序條件不同時,先掃再合併
LeetCode 2426: Number of Pairs Satisfying Inequality
·2 分鐘
LeetCode Hard Merge-Sort Divide-and-Conquer Two-Pointers Counting
LeetCode 2426 解題筆記:先化簡式子,再判斷符合的是前綴還是後綴
LeetCode LCR 170: 交易逆序對的總數
·2 分鐘
LeetCode Hard Merge-Sort Divide-and-Conquer Counting
LCR 170(劍指 Offer 51)解題筆記:merge 時順便數逆序對
LeetCode 315: Count of Smaller Numbers After Self
·2 分鐘
LeetCode Hard Merge-Sort Divide-and-Conquer Binary-Indexed-Tree Counting
LeetCode 315 解題筆記:帶 index 的 merge sort,以及 BIT 解法
LeetCode 2416: Sum of Prefix Scores of Strings
·1 分鐘
LeetCode Hard Trie String Counting
LeetCode 2416 解題筆記:Trie 每個節點記錄經過的單字數,單字的答案就是沿路計數的總和
LeetCode 1155: Number of Dice Rolls With Target Sum
·3 分鐘
LeetCode Medium Dynamic-Programming Counting
LeetCode 1155 解題筆記,依照原始 learning note 重新整理
LeetCode 3713: Longest Balanced Substring I
·1 分鐘
LeetCode Medium Hash-Table String Counting Enumeration
LeetCode 3713 解題筆記:固定起點往右擴;「每種字元次數都一樣」等於「最大次數 × 種類數 = 長度」,每一步 O(1) 判斷
LeetCode 3960: Frequency Balance Subarray
·1 分鐘
LeetCode Medium Hash-Table Counting Array
LeetCode 3960 解題筆記:n 只有 1000,固定左端點往右擴,同時維護「值 -> 次數」和「次數 -> 個數」;只有 f 和 2f 兩種次數就成立
LeetCode 3913: Sort Vowels by Frequency
·1 分鐘
LeetCode Medium String Sorting Counting
LeetCode 3913 解題筆記:只把母音抽出來,用(-次數, 第一次出現的位置)排序,再放回原本母音的位置
LeetCode 3843: First Element with Unique Frequency
·1 分鐘
LeetCode Medium Hash-Table Counting Array
LeetCode 3843 解題筆記:數每個值的次數,再數「每種次數有幾個值」;由左到右第一個次數只屬於它自己的就是答案