Cấu trúc dữ liệu &
Giải thuật từ A đến Z
Lộ trình 12 chương học sâu DSA cho lập trình viên Việt Nam chuẩn bị phỏng vấn. Mỗi chương có lý thuyết chi tiết, ví dụ JS/TS chạy được, visualizer tương tác, bài tập LeetCode tiêu biểu và quiz cuối bài.
Tại sao học DSA?
DSA (Data Structures & Algorithms) là nền tảng tư duy lập trình. Thiếu nó, bạn vẫn có thể code app nhỏ, nhưng:
- Phỏng vấn: 90% công ty lớn (FAANG, fintech, product company VN) đều test DSA ở vòng coding.
- Code production: Biết chọn đúng cấu trúc dữ liệu = code chạy nhanh hơn 100x mà không cần "tối ưu".
- Đọc code người khác: Hiểu vì sao thư viện chuẩn dùng Hash Map, vì sao database dùng B-tree, vì sao Redis có sorted set.
- Tư duy: DSA dạy bạn phân rã bài toán — kỹ năng này dùng ở mọi nơi, không chỉ trong phỏng vấn.
Lộ trình 12 chương
Học theo thứ tự — chương sau xây trên kiến thức chương trước. Click vào card để vào học.
Big-O & Phân tích độ phức tạp
Time/space complexity, Big-O/Θ/Ω, amortized analysis. Nền tảng để đánh giá mọi đoạn code.
CHƯƠNG 02 · LINEAR DSArray & String
Two pointers, sliding window, prefix sum. 40% bài phỏng vấn rơi vào hai pattern này.
CHƯƠNG 03 · LINEAR DSLinked List
Singly/doubly/circular, dummy node, fast/slow pointer, Floyd's cycle detection.
CHƯƠNG 04 · LINEAR DSStack & Queue
LIFO/FIFO, deque, monotonic stack/deque, expression evaluation.
CHƯƠNG 05 · LOOKUP DSHash Table
Hash function, collision resolution, load factor. JS Map/Set/Object — khi nào dùng cái nào.
CHƯƠNG 06 · TECHNIQUERecursion & Backtracking
Tư duy đệ quy, recursion tree, template backtracking, N-Queens, Sudoku.
CHƯƠNG 07 · ALGORITHMSorting Algorithms
Bubble, Selection, Insertion, Merge, Quick, Heap, Counting. Stable, in-place, TimSort.
CHƯƠNG 08 · ALGORITHMSearching & Binary Search
Binary search 3 dạng, search trên không gian đáp án, rotated sorted array.
CHƯƠNG 09 · TREETree (Binary Tree, BST, Trie)
Traversal pre/in/post-order, BST invariant, Trie cho autocomplete, balanced trees.
CHƯƠNG 10 · TREE-BASEDHeap & Priority Queue
Min/max heap, sift-up/down, heapify O(n), pattern Top-K, two-heap technique.
CHƯƠNG 11 · GRAPHGraph (BFS, DFS, Dijkstra, MST)
Adjacency list/matrix, topological sort, shortest path, Union-Find, MST.
CHƯƠNG 12 · TECHNIQUEDynamic Programming
Memoization vs tabulation, state design, knapsack, LIS/LCS, edit distance.
Xem trước — Bảng so sánh tốc độ Big-O
Đây là thứ bạn sẽ nắm sau Chương 1. Click vào card chương 1 ở trên để học chi tiết.
Cách dùng tài liệu này
- Đọc giáo trình tổng quan trước (5-10 phút) để có cái nhìn toàn cảnh 12 chương.
- Học tuần tự: Chương 01 → 02 → ... → 12. Đừng nhảy cóc — kiến thức xếp tầng.
- Mỗi chương: đọc lý thuyết → xem visualizer → tự code lại bằng JS/TS → làm quiz → giải bài LeetCode tiêu biểu.
- Đúng >= 80% quiz mới chuyển chương. Sai ở đâu, đọc lại phần đó.
- Sau khi xong cả 12 chương: bắt đầu LeetCode NeetCode 150 theo pattern.
- Mỗi 2 tuần quay lại review lại 1 chương — DSA chỉ ngấm khi ôn lại nhiều lần.