Array
LeetCode 189: Rotate Array
·1 分鐘
LeetCode
Medium
Array
Math
Two-Pointers
LeetCode 189 解題筆記:先 k %= n,再用三次反轉:整個反轉、前 k 個反轉、後 n - k 個反轉;O(1) 額外空間
LeetCode 162: Find Peak Element
·1 分鐘
LeetCode
Medium
Array
Binary-Search
LeetCode 162 解題筆記:nums[mid] < nums[mid + 1] 代表右邊一定有山峰(一路上升最後也會碰到邊界),否則左邊(含 mid)一定有
LeetCode 134: Gas Station
·1 分鐘
LeetCode
Medium
Array
Greedy
LeetCode 134 解題筆記:總油量不夠就不可能;否則從左掃,油箱變負就把起點移到下一站
LeetCode 137: Single Number II
·1 分鐘
LeetCode
Medium
Array
Bit-Manipulation
LeetCode 137 解題筆記:其他數都出現三次,逐位元統計 1 的個數取 mod 3,剩下的位元就是答案;注意負數
LeetCode 106: Construct Binary Tree from Inorder and Postorder Traversal
·1 分鐘
LeetCode
Medium
Array
Hash-Table
Divide-and-Conquer
Tree
LeetCode 106 解題筆記:後序的最後一個是根;從後序尾巴往前取根時,要先建右子樹再建左子樹
LeetCode 1646: Get Maximum in Generated Array
·1 分鐘
LeetCode
Easy
Array
Simulation
LeetCode 1646 解題筆記:照規則生成陣列:偶數位置 nums[i // 2],奇數位置 nums[i // 2] + nums[i // 2 + 1],n = 0 要特別處理
LeetCode 48: Rotate Image
·1 分鐘
LeetCode
Medium
Array
Math
Matrix
LeetCode 48 解題筆記:順時針轉 90 度 = 先轉置再把每一列左右反轉,兩步都可以原地做
LeetCode 695: Max Area of Island
·1 分鐘
LeetCode
Medium
Array
Depth-First-Search
Breadth-First-Search
Union-Find
LeetCode 695 解題筆記:每遇到一個沒走過的 1 就 DFS 整座島,數格子數,取最大值;格子是整數 1,不是字串
LeetCode 417: Pacific Atlantic Water Flow
·1 分鐘
LeetCode
Medium
Array
Depth-First-Search
Breadth-First-Search
Matrix
LeetCode 417 解題筆記:反過來從海邊往內走,只能走到不比自己低的格子;兩個海都走得到的格子就是答案
LeetCode 973: K Closest Points to Origin
·1 分鐘
LeetCode
Medium
Array
Math
Divide-and-Conquer
Geometry
LeetCode 973 解題筆記:跟 Top-K 一樣,用大小為 k 的 max-heap(存負的距離)保留最近的 k 個點
LeetCode 287: Find the Duplicate Number
·1 分鐘
LeetCode
Medium
Array
Two-Pointers
Binary-Search
Bit-Manipulation
LeetCode 287 解題筆記:把 i -> nums[i] 看成鏈結串列,重複的值就是環的入口,用 Floyd 判圈;O(1) 空間、不改陣列
LeetCode 215: Kth Largest Element in an Array
·1 分鐘
LeetCode
Medium
Array
Divide-and-Conquer
Sorting
Heap-Priority-Queue
LeetCode 215 解題筆記:維持大小為 k 的 min-heap,堆頂就是第 k 大;或用 quickselect 平均 O(n)