List of topics
Giới thiệu về lớp học + cách luyện thuật toán trên Leetcode
Đào sâu vào phân tích thuật toán
Chuỗi - String
Chữa bài tập phân tích thuật toán
Mảng - Array
Hai con trỏ - Two Pointers
Chữa bài tập Chuỗi + Mảng
Ngăn xếp và Hàng đợi - Stack & Queue
Đệ quy
Chữa bài hai con trỏ + ngăn xếp
Thuật toán sắp xếp - Giải thuật tham lam
Đống - Heap
Đồ thị - Graph
Chữa bài đệ quy + sắp xếp + giải thuật tham lam
Thuật toán BFS
Thuật toán DFS
Chữa bài Heap + Đồ thị
Thuật toán Dijkstra
Cấu trúc dữ liệu Union Find
Chữa bài tập BFS + DFS
Toán học
Cây - Tree
Tìm kiếm nhị phân - Binary Search
Chữa bài Dijkstra + Union Find
Cây tìm kiếm nhị phân - Binary Search Tree
Danh sách liên kết - Linked List
Chữa bài toán + gợi ý các bài cây
Quy hoạch động cơ bản - Knapsack
Ứng dụng quy hoạch động trong trí tuệ nhân tạo
Chữa bài cây nhị phân + Tìm kiếm nhị phân

Thuật toán BFS

Tìm đường ngắn nhất trong đồ thị là một trong những dạng bài tập có rất nhiều câu hỏi Leetcode liên quan.

Khi bạn học kỹ các dạng bài sau bạn sẽ hiểu tường tận được thuật toán này

  • Tìm đường thỏa mãn một điều kiện K cho trước
  • Kiểm tra đường
  • Các bài toán tìm đường trong ma trận

Video | Slide | Notebook

1. Bài toán tìm đường ngắn nhất

1.1. [LC] 12.1.1. Bài toán tìm đường ngắn nhất

2. Thuật toán BFS

2.1. 11.2.1. Giới thiệu thuật toán BFS

2.2. [LC] 11.2.2. Những đường nào là đúng để đi

Click to view more

2.3. 11.2.3. BFS - chuẩn bị cấu trúc dữ liệu

2.4. 11.2.4. Chi tiết thuật toán BFS

2.5. 11.2.5. Truy vết đường ngắn nhất

2.6. [LC] 11.2.6. Dựa vào truy vết này thì đường ngắn nhất từ 0 đến 5 sẽ là?

Click to view more

2.7. 11.2.7. BFS Code

2.8. [LC] 11.2.8. Code truy vết

Click to view more

2.9. 11.2.10. Độ phức tạp của BFS

3. BFS với những bài toán ma trận

3.1. 11.4.1. Dạng bài BFS với ma trận

3.2. 11.4.2. Vấn đề xác định đỉnh kề

3.3. 11.4.3. Giải quyết vấn đề đỉnh kề

3.4. [LC] 11.4.4. Tọa độ theo 8 hướng

Click to view more

3.5. [LC] 11.4.5. Cách code tìm 4 đỉnh kề theo 4 hướng xung quanh

Click to view more

3.6. 11.4.7. Trường hợp tọa độ ở cạnh

3.7. [LC] 11.4.8. Cách code phát hiện tọa độ nằm ngoài ma trận

Click to view more

3.8. 11.4.9. Chi tiết BFS trên ma trận

3.9. [LC] 11.4.10. Toàn bộ Code BFS trên ma trận

Click to view more

4. Leetcode 200 - Bài toán tìm số lượng đảo

4.1. 11.5.1. Giới thiệu Leetcode 200

4.2. 11.5.2. Chi tiết thuật toán Leetcode 200

4.3. 11.5.3. Cùng lập trình giải quyết LC200

5. Slide bài giảng

5.1. 11. BFS - v2.pdf

5.2. 11.4. BFS - Matrix.pdf

6. Bài tập

6.1. Leetcode 200 - Number of Islands

Click to view more

6.2. Leetcode 994 - Rotting Oranges

Click to view more

6.3. Leetcode 752 - Open the Lock

Click to view more
1. Bài toán tìm đường ngắn nhất
1.1. [LC] 12.1.1. Bài toán tìm đường ngắn nhất
2. Thuật toán BFS
2.1. 11.2.1. Giới thiệu thuật toán BFS
2.2. [LC] 11.2.2. Những đường nào là đúng để đi
2.3. 11.2.3. BFS - chuẩn bị cấu trúc dữ liệu
2.4. 11.2.4. Chi tiết thuật toán BFS
2.5. 11.2.5. Truy vết đường ngắn nhất
2.6. [LC] 11.2.6. Dựa vào truy vết này thì đường ngắn nhất từ 0 đến 5 sẽ là?
2.7. 11.2.7. BFS Code
2.8. [LC] 11.2.8. Code truy vết
2.9. 11.2.10. Độ phức tạp của BFS
3. BFS với những bài toán ma trận
3.1. 11.4.1. Dạng bài BFS với ma trận
3.2. 11.4.2. Vấn đề xác định đỉnh kề
3.3. 11.4.3. Giải quyết vấn đề đỉnh kề
3.4. [LC] 11.4.4. Tọa độ theo 8 hướng
3.5. [LC] 11.4.5. Cách code tìm 4 đỉnh kề theo 4 hướng xung quanh
3.6. 11.4.7. Trường hợp tọa độ ở cạnh
3.7. [LC] 11.4.8. Cách code phát hiện tọa độ nằm ngoài ma trận
3.8. 11.4.9. Chi tiết BFS trên ma trận
3.9. [LC] 11.4.10. Toàn bộ Code BFS trên ma trận
4. Leetcode 200 - Bài toán tìm số lượng đảo
4.1. 11.5.1. Giới thiệu Leetcode 200
4.2. 11.5.2. Chi tiết thuật toán Leetcode 200
4.3. 11.5.3. Cùng lập trình giải quyết LC200
5. Slide bài giảng
5.1. 11. BFS - v2.pdf
5.2. 11.4. BFS - Matrix.pdf
6. Bài tập
6.1. Leetcode 200 - Number of Islands
6.2. Leetcode 994 - Rotting Oranges
6.3. Leetcode 752 - Open the Lock