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 sắp xếp - Giải thuật tham lam

Giải thuật tham lam

Đôi khi chúng ta sử dụng giải thuật giam lam trong lập trình mà không hề hay biết.

Ví dụ mua chanh là một trong ví dụ dễ hiệu để mô tả thuật toán này. Khi học xong thuật toán này bạn có thể xử lý được những dạng bài Leetcode như sau:

  • Các bài toán tối ưu sắp xếp công việc và thời gian
  • Các bài tạo chuỗi / mảng theo một điều kiện cho trước

Video | Slide | Notebook

1. Các thuật toán sắp xếp

1.1. [LC] 8.1.2. Các thuật toán sắp xếp

2. Thuật toán sắp xếp nổi bọt

2.1. [LC] 8.2.2. Giới thiệu sắp xếp nổi bọt

2.2. [LC] 8.2.3. Sắp xếp nổi bọt chi tiết

2.3. [LC] 8.2.4. Sắp xếp các khối để tạo thành sắp xếp nổi bọt

Click to view more

2.4. [LC] 8.2.5. Đánh giá độ phức tạp của thuật toán sắp xếp nổi bọt

Click to view more

3. Thuật toán sắp xếp trộn

3.1. [LC] 8.3.1. Hợp hai mảng đã được sắp xếp

3.2. [LC] 8.3.2. Đánh giá độ phức tạp thời gian của thuật toán hợp hai mảng đã sắp xếp

Click to view more

3.3. [LC] 8.3.3. Câu chuyện bó đũa - Chia để trị

3.4. [LC] 8.3.4. Ý tưởng của sắp xếp trộn

3.5. [LC] 8.3.5. Sắp xếp trộn chi tiết

3.6. [LC] 8.3.6. Sắp xếp trộn - Code

3.7. [LC] 8.3.7. Đổi vị trí đệ quy sắp xếp trộn

Click to view more

3.8. [LC] 8.3.8. Kết luận độ phức tạp thời gian của sắp xếp trộn

Click to view more

4. Thuật toán sắp xếp trong Python

4.1. [LC] 8.4.1. Sử dụng sort trong python

Click to view more

4.2. [LC] 8.4.2. Thực hành sắp xếp với nhiều điều kiện

Click to view more

5. Giải thuật tham lam

5.1. [LC] 8.6.1. Giới thiệu giải thuật tham lam

5.2. [LC] 8.6.2. Leetcode 860 - Bài toán tiền thừa nước chanh

5.3. [LC] 8.6.3. Ý tưởng Leetcode 860

5.4. [LC] 8.6.4. Leetcode 860 - Code

5.5. [LC] 8.6.5. Đánh giá độ phức tạp thuật toán Leetcode 860

Click to view more

6. Slide bài giảng

6.1. Slide thuật toán sắp xếp

6.2. Slide giải thuật tham lam

7. Bài tập

7.1. Leetcode 1333 - Filter Restaurants by Vegan-Friendly, Price and Distance

Click to view more

7.2. Leetcode 252 - Meeting Rooms

Click to view more

7.3. Leetcode 121 - Best Time to Buy and Sell Stock

Click to view more

7.4. Leetcode 56 - Merge Intervals

Click to view more

7.5. Leetcode 253 - Meeting Rooms II

Click to view more

7.6. Leetcode 1710 - Maximum Units on a Truck

Click to view more
1. Các thuật toán sắp xếp
1.1. [LC] 8.1.2. Các thuật toán sắp xếp
2. Thuật toán sắp xếp nổi bọt
2.1. [LC] 8.2.2. Giới thiệu sắp xếp nổi bọt
2.2. [LC] 8.2.3. Sắp xếp nổi bọt chi tiết
2.3. [LC] 8.2.4. Sắp xếp các khối để tạo thành sắp xếp nổi bọt
2.4. [LC] 8.2.5. Đánh giá độ phức tạp của thuật toán sắp xếp nổi bọt
3. Thuật toán sắp xếp trộn
3.1. [LC] 8.3.1. Hợp hai mảng đã được sắp xếp
3.2. [LC] 8.3.2. Đánh giá độ phức tạp thời gian của thuật toán hợp hai mảng đã sắp xếp
3.3. [LC] 8.3.3. Câu chuyện bó đũa - Chia để trị
3.4. [LC] 8.3.4. Ý tưởng của sắp xếp trộn
3.5. [LC] 8.3.5. Sắp xếp trộn chi tiết
3.6. [LC] 8.3.6. Sắp xếp trộn - Code
3.7. [LC] 8.3.7. Đổi vị trí đệ quy sắp xếp trộn
3.8. [LC] 8.3.8. Kết luận độ phức tạp thời gian của sắp xếp trộn
4. Thuật toán sắp xếp trong Python
4.1. [LC] 8.4.1. Sử dụng sort trong python
4.2. [LC] 8.4.2. Thực hành sắp xếp với nhiều điều kiện
5. Giải thuật tham lam
5.1. [LC] 8.6.1. Giới thiệu giải thuật tham lam
5.2. [LC] 8.6.2. Leetcode 860 - Bài toán tiền thừa nước chanh
5.3. [LC] 8.6.3. Ý tưởng Leetcode 860
5.4. [LC] 8.6.4. Leetcode 860 - Code
5.5. [LC] 8.6.5. Đánh giá độ phức tạp thuật toán Leetcode 860
6. Slide bài giảng
6.1. Slide thuật toán sắp xếp
6.2. Slide giải thuật tham lam
7. Bài tập
7.1. Leetcode 1333 - Filter Restaurants by Vegan-Friendly, Price and Distance
7.2. Leetcode 252 - Meeting Rooms
7.3. Leetcode 121 - Best Time to Buy and Sell Stock
7.4. Leetcode 56 - Merge Intervals
7.5. Leetcode 253 - Meeting Rooms II
7.6. Leetcode 1710 - Maximum Units on a Truck