↓快轉到主要內容

Binary-Search

LeetCode 81: Search in Rotated Sorted Array II
·1 分鐘
LeetCode Medium Array Binary-Search
LeetCode 81 解題筆記:有重複值時 nums[l] == nums[mid] 會分不出哪一半有序,這時只能把 l 往右移一格;最壞 O(n)
LeetCode 74: Search a 2D Matrix
·1 分鐘
LeetCode Medium Array Binary-Search Matrix
LeetCode 74 解題筆記:每列接上一列是完整排序的,把矩陣當成長度 m × n 的一維陣列二分,mid 換成 (mid // n, mid % n)
LeetCode 34: Find First and Last Position of Element in Sorted Array
·2 分鐘
LeetCode Medium Array Binary-Search
LeetCode 34 解題筆記:做兩次 lower bound:第一個 >= target 的位置,以及第一個 >= target + 1 的位置減一
LeetCode 33: Search in Rotated Sorted Array
·2 分鐘
LeetCode Medium Array Binary-Search
LeetCode 33 解題筆記:旋轉後 mid 的左右一定有一邊是排序好的,判斷目標在不在那一邊,在就往那邊找,不在就去另一邊
LeetCode 888: Fair Candy Swap
·1 分鐘
LeetCode Easy Array Hash-Table Binary-Search Sorting
LeetCode 888 解題筆記:交換 x 和 y 後總和相等,代表 y = x + (sumB - sumA) / 2;把 B 放進集合,逐一檢查 A 的 x
LeetCode 744: Find Smallest Letter Greater Than Target
·1 分鐘
LeetCode Easy Array Binary-Search
LeetCode 744 解題筆記:找第一個 > target 的字母(upper bound);找不到就繞回第一個
LeetCode 704: Binary Search
·1 分鐘
LeetCode Easy Array Binary-Search
LeetCode 704 解題筆記:左閉右閉區間 [l, r],mid 用整數除法;找到就回傳,否則依大小縮掉一半
LeetCode 441: Arranging Coins
·1 分鐘
LeetCode Easy Math Binary-Search
LeetCode 441 解題筆記:找最大的 k 讓 k(k + 1) / 2 <= n;二分時往右更新要寫 l = mid + 1,不然會卡住
LeetCode 374: Guess Number Higher or Lower
·1 分鐘
LeetCode Easy Binary-Search Interactive
LeetCode 374 解題筆記:依 guess 的回傳值調整範圍;-1 代表猜太大,1 代表猜太小
LeetCode 367: Valid Perfect Square
·1 分鐘
LeetCode Easy Math Binary-Search
LeetCode 367 解題筆記:在 [1, num] 上二分找 mid² == num,不用 sqrt
LeetCode 350: Intersection of Two Arrays II
·1 分鐘
LeetCode Easy Array Hash-Table Two-Pointers Binary-Search
LeetCode 350 解題筆記:保留重複次數的交集,Counter 相交(&)取兩邊次數的較小值
LeetCode 349: Intersection of Two Arrays
·1 分鐘
LeetCode Easy Array Hash-Table Two-Pointers Binary-Search
LeetCode 349 解題筆記:兩個陣列各轉成集合取交集