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.
#heap-priority-queue · 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
Phần tử lớn thứ K: ba cách tránh phải sort toàn bộ mảng
Tìm phần tử lớn thứ K trong mảng trông đơn giản — cho đến khi bạn gặp trường hợp sort quá chậm hoặc dữ liệu đến dạng stream. Min heap và QuickSelect giải quyết hai phiên bản khác nhau của vấn đề đó, và hiểu khi nào dùng cái nào quan trọng hơn việc thuộc lòng cả hai.14 thg 6, 2026 · 13 phút đọc · #00037
02
K Closest Points to Origin: sort toàn bộ, min heap, và khi nào nên dùng bounded max heap
Ba approach để tìm k điểm gần gốc tọa độ nhất — sort toàn bộ, min heap, và bounded max heap giúp cắt bộ nhớ từ O(n) xuống O(k). Approach cuối mới là thứ tôi thực sự dùng trong production.14 thg 6, 2026 · 11 phút đọc · #00039
03
Task Scheduler: bài toán idle time và khi nào công thức đánh bại heap
LeetCode 621 yêu cầu tìm số khoảng thời gian CPU tối thiểu để chạy các task với ràng buộc cooldown. Hai cách tiếp cận — simulation bằng heap và công thức toán học — cho thấy một chút phân tích pattern có thể thay thế hàng nghìn vòng lặp mô phỏng.14 thg 6, 2026 · 13 phút đọc · #00040
Đô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.