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
Đồ thị - Graph
Nếu bạn có thắc mắc mạng xã hội làm sao có thể đề xuất bạn chung cho bạn, thì đồ thị chính là một trong những mấu chốt mà bạn cần học.
Trong bài học này chúng ta sẽ cùng sử dụng đồ thị để giải một số bài tập thú vị:
- Bài tập tìm chủ làng
- Bài tập trồng hoa
Video | Slide | Notebook
1. Đồ thị
1.1. [LC] 10.1.1. Giới thiệu đồ thị
1.2. [LC] 10.1.2. Thành phần chính của đồ thị
1.3. [LC] 10.1.3. Đường + chu trình
1.4. [LC] 10.1.4. Thành phần liên thông
1.5. [LC] 10.1.5. Xây dựng đồ thị
1.6. [LC] 10.1.6. Điểm yếu của mảng răng cưa
Click to view more
1.7. [LC] 10.1.7. Xây dựng đồ thị bằng từ điển
1.8. [LC] 10.1.8. Code xây dựng đồ thị
1.9. [LC] 10.1.9. Với các liên kết thế này, bạn sẽ ưu tiên lưu trữ thế nào?
Click to view more
2. Bài toán tìm tù trưởng
2.1. [LC] 10.2.1. Leetcode 997 Đi tìm tù trưởng
2.2. [LC] 10.2.2. Leetcode 997 Ý tưởng + chi tiết thuật toán
2.3. [LC] 10.2.3. Bạn dự đoán độ phức tạp của thuật toán này sẽ là bao nhiêu?
Click to view more
2.4. [LC] 10.2.4. Leetcode 997 livecode
2.5. [LC] 10.2.5. Bạn nghĩ có thể chỉ cần sử dụng một mảng thay vì hai mảng A và mảng B hay không?
Click to view more
2.6. [LC] 10.2.6. Nếu mình thay đổi code như này bạn nghĩ độ phức tạp có thay đổi không?
Click to view more
3. Slide bài giảng
3.1. 10. Graph.pdf
3.2. 997.pdf
4. Bài tập
4.1. Leetcode 997 - Find the Town Judge
Click to view more
4.2. Leetcode 1042 - Flower Planting With No Adjacent
Click to view more
1. Đồ thị
1.1. [LC] 10.1.1. Giới thiệu đồ thị
1.2. [LC] 10.1.2. Thành phần chính của đồ thị
1.3. [LC] 10.1.3. Đường + chu trình
1.4. [LC] 10.1.4. Thành phần liên thông
1.5. [LC] 10.1.5. Xây dựng đồ thị
1.6. [LC] 10.1.6. Điểm yếu của mảng răng cưa
1.7. [LC] 10.1.7. Xây dựng đồ thị bằng từ điển
1.8. [LC] 10.1.8. Code xây dựng đồ thị
1.9. [LC] 10.1.9. Với các liên kết thế này, bạn sẽ ưu tiên lưu trữ thế nào?
2. Bài toán tìm tù trưởng
2.1. [LC] 10.2.1. Leetcode 997 Đi tìm tù trưởng
2.2. [LC] 10.2.2. Leetcode 997 Ý tưởng + chi tiết thuật toán
2.3. [LC] 10.2.3. Bạn dự đoán độ phức tạp của thuật toán này sẽ là bao nhiêu?
2.4. [LC] 10.2.4. Leetcode 997 livecode
2.5. [LC] 10.2.5. Bạn nghĩ có thể chỉ cần sử dụng một mảng thay vì hai mảng A và mảng B hay không?
2.6. [LC] 10.2.6. Nếu mình thay đổi code như này bạn nghĩ độ phức tạp có thay đổi không?
3. Slide bài giảng
3.1. 10. Graph.pdf
3.2. 997.pdf
4. Bài tập
4.1. Leetcode 997 - Find the Town Judge
4.2. Leetcode 1042 - Flower Planting With No Adjacent