Recursion & Backtracking — Nghệ thuật gọi tên chính mình
Vòng lặp for và while rất mạnh mẽ để duyệt mảng phẳng. Nhưng nếu bạn cần quét toàn bộ ổ cứng máy tính để tìm một file .txt?
Thư mục gốc chứa thư mục con, thư mục con lại chứa thư mục cháu... Bạn không thể biết trước cần lồng bao nhiêu vòng for cho đủ.
Khi cấu trúc dữ liệu bị phân nhánh vô tận (như Tree hay Graph), vòng lặp thông thường chính thức đầu hàng. Chào mừng b ạn đến với Recursion (Đệ quy) và kỹ thuật đi kèm không thể tách rời: Backtracking (Quay lui).
📋 Agenda
Thời gian đọc ước tính: ~8 phút
Sau bài này, bạn sẽ:
- ✅ Hiểu được tại sao Đệ quy không phải là ma thuật, mà nó được điều khiển bằng Call Stack.
- ✅ Nhận diện được 2 thành phần BẮT BUỘC để một hàm đệ quy không làm sập Server.
- ✅ Trực quan hóa khái niệm Backtracking (Quay lui) qua ví dụ tìm đường trong mê cung.
- ✅ Tự tay implement bài toán Tổ hợp bằng Backtracking trong TypeScript.
Yêu cầu đầu vào:
- 🔹 Có kiến thức về Stack (Ngăn xếp).