SERIES
Dynamic Programming
The step up from the linear-DP intros in `leetcode-patterns`: unbounded choices, subsequence state, string segmentation, and sign-flipping products.
Trong series nàyBẢN TIN
01
Bottom-Up DP Thắng Recursion: Giải Coin Change trong O(S×n)
LeetCode 322 là bài toán unbounded knapsack kinh điển. Đi qua cả bốn cách tiếp cận — brute force recursion, top-down memoization, bottom-up tabulation, và BFS — để hiểu tại sao dp table hoạt động và khi nào mỗi phiên bản phát huy tác dụng.14 thg 6, 2026 · 12 phút đọc · #00049
02
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
03
Tách Chuỗi Thực Chất Là Bài Toán Reachability Trên DP: Giải Word Break
LeetCode 139 trông như bài string-matching nhưng thực ra là câu hỏi reachability trên chỉ số. Phân tích đủ ba approach — brute-force recursion, top-down memoization, và bottom-up tabulation — để hiểu tại sao mảng dp hoạt động và phiên bản nào chịu được ràng buộc thực tế.14 thg 6, 2026 · 10 phút đọc · #00051
04
Theo Dõi Cả Min Lẫn Max: Tại Sao Bài Tích Lớn Nhất Phá Vỡ Thuật Toán Kadane Thông Thường
LeetCode 152 trông y chang Maximum Subarray cho đến khi một số âm xuất hiện và lật ngược tất cả. Đi qua brute force và DP hai trạng thái xử lý đảo dấu — cùng trace đầy đủ, phân tích edge case, và mental model bạn mang theo cho những bài sau.14 thg 6, 2026 · 8 phút đọc · #00052
Đô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.