BÀI VIẾT
Ghi chép về xây dựng và vận hành hệ thống
Bài kỹ thuật — kiến trúc, bảo mật, và đôi khi là chuyện chiến trường.
#binary-search · Tất cả bài viết
Series
Thẻ
- #leetcode 50
- #array 13
- #dfs 11
- #recursion 10
- #bfs 9
- #dynamic-programming 9
- #arrays 7
- #hash-table 7
- #trees 7
- #binary-search 6
- #two-pointers 6
- #string 5
- #backtracking 4
- #dp 4
- #graphs 4
- #greedy 4
- #matrix 4
- #sliding-window 4
- #hash-map 3
- #heap-priority-queue 3
- #linked-list 3
- #binary-search-tree 2
- #heap 2
- #math 2
- #memoization 2
- #priority-queue 2
- #sorting 2
- #stack 2
- #strings 2
- #binary-tree 1
- #bit-manipulation 1
- #bucket-sort 1
- #counting 1
- #cycle-detection 1
- #divide-and-conquer 1
- #geometry 1
- #kadane 1
- #multi-source-bfs 1
- #prefix-sum 1
- #quickselect 1
- #simulation 1
- #string-matching 1
- #topological-sort 1
- #union-find 1
01
Hai Cách Tìm Longest Increasing Subsequence — và Tại Sao O(n log n) Hoạt Động
LeetCode 300 có vẻ đơn giản nhưng lại dạy hai tư duy khác nhau: DP O(n²) cho bạn mô hình state rõ ràng, còn binary search O(n log n) dạy một greedy invariant thực sự không hiển nhiên cho đến khi bạn ngồi suy nghĩ kỹ.14 thg 6, 2026 · 11 phút đọc · #00050
02
Find Minimum in Rotated Sorted Array: nửa nào được sắp xếp?
Mảng được sắp xếp, sau đó xoay — phá vỡ bất biến binary search đơn giản. Cách sửa: so sánh mid với biên phải. Nếu mid nhỏ hơn right, minimum nằm ở nửa trái (bao gồm mid); nếu không thì nằm ở nửa phải (không bao gồm mid).13 thg 6, 2026 · 12 phút đọc · #00025
03
Search in Rotated Sorted Array: hai nửa đã sắp xếp, một điều kiện thêm
Sau khi xoay, ít nhất một trong hai nửa xung quanh mid luôn được sắp xếp. Đó là bất biến giữ cho binary search hoạt động. Bạn chỉ cần một kiểm tra thêm để biết nửa nào được sắp xếp, và sau đó target có trong nó không.13 thg 6, 2026 · 12 phút đọc · #00026
04
Two Sum II: tại sao thứ tự đã sắp xếp làm two pointers hoạt động
Input đã được sắp xếp không phải ngẫu nhiên — đó là hợp đồng mà cách tiếp cận two-pointer dựa vào. Khi bạn biết mảng đã được sắp xếp, bạn có thể đặt con trỏ ở hai đầu và di chuyển chúng có mục đích: quá lớn thì thu nhỏ phải; quá nhỏ thì mở rộng trái.13 thg 6, 2026 · 12 phút đọc · #00013
05
Binary Search: bãi mìn off-by-one
Binary search là một trong những thuật toán mà mọi người nghĩ rằng họ hiểu cho đến khi phải implement từ đầu. Logic là bốn dòng. Phần khó là các điều kiện biên — dùng lo <= hi hay lo < hi, và mid đi trái hay phải khi bỏ lỡ.13 thg 6, 2026 · 15 phút đọc · #00023
06
Search a 2D Matrix: làm phẳng chỉ số ma trận thành một binary search
Ma trận được đảm bảo sắp xếp theo từng hàng và theo cột — nghĩa là nếu bạn trải phẳng nó thành mảng 1D, nó hoàn toàn được sắp xếp. Binary search trên mảng 1D ảo, chuyển đổi mid trở lại (row, col): đó là toàn bộ thủ thuật.13 thg 6, 2026 · 13 phút đọc · #00024
Đôi dòng ghi chép về những gì tôi đang xây
Nhận email khi tôi đăng bài mới — các bài kỹ thuật, không spam. Hủy đăng ký bất cứ lúc nào.