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
Đống - Heap
Heap là một cấu trúc dữ liệu đặc biệt được thiết kế để tối ưu tính toán một số bài toán cụ thể sau.
- Bài toán tìm K phần tử thỏa mãn một điều kiện với chi phí thấp nhất
- Bài toán sắp xếp dựa trên trọng số
Video | Slide | Notebook
1. Xây dựng Newsfeed cho mạng xã hội
1.1. [LC] 9.1.1. Tính năng newsfeed
1.2. [LC] 9.1.2. Newsfeed sử dụng hàm sắp xếp
1.3. [LC] 9.1.3. Newsfeed sử dụng heap
2. Cây nhị phân
2.1. [LC] 9.2.1. Cây
2.2. [LC] 9.2.2. Biến mảng thành cây
3. Chi tiết về Heap
3.1. [LC] 9.3.1. Heap là cây
3.2. [LC] 9.3.2. Xây dựng cây Heap
3.3. [LC] 9.3.3. Tại sao lại sử dụng đoạn code này?
Click to view more
3.4. [LC] 9.3.4. Code hoán đổi vị trí
3.5. [LC] 9.3.5. Đoạn code nào làm dừng đệ quy
Click to view more
3.6. [LC] 9.3.6. Toàn bộ Code xây dựng Heap
3.7. [LC] 9.3.7. Tìm giá trị nhỏ nhất Min Heap
3.8. [LC] 9.3.8. Tìm chỉ mục của cha thế nào?
Click to view more
3.9. [LC] 9.3.9. Thêm một phần tử vào Heap
3.10. [LC] 9.3.10. Xóa phần tử trên cùng của Heap
4. Sử dụng heap trong Python
4.1. [LC] 9.4.1. Giới thiệu thư viện heapq
5. Dạng bài k phần tử lớn nhất/nhỏ nhất trong mảng
5.1. [LC] 9.5.1. Leetcode 215 - Sử dụng sắp xếp
5.2. [LC] 9.5.2. Leetcode 215 - sử dụng Min Heap
6. Dạng bài sắp xếp dựa vào trọng số
6.1. Dạng bài sắp xếp dựa trên trọng số sử dụng Heap
Click to view more
7. Slide bài giảng
7.1. 9. Thiết kế newsfeed
7.2. 9. Heap - v2
8. Bài tập
8.1. Leetcode 215 - Kth Largest Element in an Array
Click to view more
8.2. Leetcode 692 - Top K Frequent Words
Click to view more
8.3. Leetcode 1054 - Distant Barcodes
Click to view more
8.4. Leetcode 857 - Minimum Cost to Hire K Workers
Click to view more
8.5. Leetcode 767 - Reorganize String
Click to view more
1. Xây dựng Newsfeed cho mạng xã hội
1.1. [LC] 9.1.1. Tính năng newsfeed
1.2. [LC] 9.1.2. Newsfeed sử dụng hàm sắp xếp
1.3. [LC] 9.1.3. Newsfeed sử dụng heap
2. Cây nhị phân
2.1. [LC] 9.2.1. Cây
2.2. [LC] 9.2.2. Biến mảng thành cây
3. Chi tiết về Heap
3.1. [LC] 9.3.1. Heap là cây
3.2. [LC] 9.3.2. Xây dựng cây Heap
3.3. [LC] 9.3.3. Tại sao lại sử dụng đoạn code này?
3.4. [LC] 9.3.4. Code hoán đổi vị trí
3.5. [LC] 9.3.5. Đoạn code nào làm dừng đệ quy
3.6. [LC] 9.3.6. Toàn bộ Code xây dựng Heap
3.7. [LC] 9.3.7. Tìm giá trị nhỏ nhất Min Heap
3.8. [LC] 9.3.8. Tìm chỉ mục của cha thế nào?
3.9. [LC] 9.3.9. Thêm một phần tử vào Heap
3.10. [LC] 9.3.10. Xóa phần tử trên cùng của Heap
4. Sử dụng heap trong Python
4.1. [LC] 9.4.1. Giới thiệu thư viện heapq
5. Dạng bài k phần tử lớn nhất/nhỏ nhất trong mảng
5.1. [LC] 9.5.1. Leetcode 215 - Sử dụng sắp xếp
5.2. [LC] 9.5.2. Leetcode 215 - sử dụng Min Heap
6. Dạng bài sắp xếp dựa vào trọng số
6.1. Dạng bài sắp xếp dựa trên trọng số sử dụng Heap
7. Slide bài giảng
7.1. 9. Thiết kế newsfeed
7.2. 9. Heap - v2
8. Bài tập
8.1. Leetcode 215 - Kth Largest Element in an Array
8.2. Leetcode 692 - Top K Frequent Words
8.3. Leetcode 1054 - Distant Barcodes
8.4. Leetcode 857 - Minimum Cost to Hire K Workers
8.5. Leetcode 767 - Reorganize String