↓快轉到主要內容

Binary-Indexed-Tree

Segment Tree 與 Fenwick Tree
·2 分鐘
演算法 Segment-Tree Binary-Indexed-Tree Design
單點更新、區間查詢:Fenwick Tree(樹狀陣列)用 i & -i 跳,線段樹用遞迴把區間切兩半;兩者都是每次操作 O(log n)
LeetCode 4051: Count Subarrays with Distant Sums
·4 分鐘
LeetCode Hard Merge-Sort Prefix-Sum Binary-Indexed-Tree Biweekly-Contest
LeetCode 4051 解題筆記:前綴和 + 補集 + 區間計數,以及 k = 0 的邊界
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 2193: Minimum Number of Moves to Make Palindrome
·1 分鐘
LeetCode Hard Two-Pointers Greedy String Binary-Indexed-Tree
LeetCode 2193 解題筆記:貪心處理最外層:拿最後一個字元,把它最左邊的同伴換到最前面,花費是那個位置;落單的字元最後在正中間,花費是它到中間的距離
LeetCode 327: Count of Range Sum
·2 分鐘
LeetCode Hard Merge-Sort Divide-and-Conquer Prefix-Sum Binary-Indexed-Tree
LeetCode 327 解題筆記:前綴和 + merge sort 計數,兩個指針卡出區間;重打十幾次的練習紀錄
LeetCode 307: Range Sum Query - Mutable
·2 分鐘
LeetCode Medium Segment-Tree Binary-Indexed-Tree Design Array
LeetCode 307 解題筆記:單點更新加區間和,前綴和每次更新要 O(n);用線段樹或 Fenwick Tree,兩種操作都是 O(log n)