Cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode

Khóa học cấu trúc dữ liệu và giải thuật với java giúp các bạn ôn lại toàn bộ kiến thức về cấu trúc dữ liệu và giải thuật, giải quyết hàng chục bài LeetCode

Người mới 0(0 Đánh giá) 61 Sinh viên đăng ký Vietnamese
Người tạo Admin BKH
Cập nhật cuối Thu, 20-Apr-2023
+ Xem thêm
Tổng quan khóa học

Hiện nay ngành Công nghệ thông tin nói chung và ngành Lập trình viên nói riêng ở nước ta ngày càng phát triển! Chính vì vậy mà quy trình tuyển chọn của một số công ty cũng ngày càng cao. Những công ty lớn như: ViettelVinGroupSamsung,... tất cả các vòng phỏng vấn của họ đều có vòng thi test kỹ thuật đầu vào, và cụ thể là những bài thi dạng lập trình thi đấu, liên quan đến cấu trúc dữ liệu và giải thuật là chính.

Tại nước ngoài hầu hết những kiểu thi như thế này đều rất là phổ biến và hầu như công ty nào cũng áp dụng. Nhưng gần đây cách test này mới được áp dụng một cách chuyên nghiệp tại Việt Nam. Có những công ty cung cấp cho ứng viên một bài test online tại một nền tảng thứ 3 (như HackerRank, LeetCode) và yêu cầu họ hoàn thành bài test trong 2-3 tiếng. Chính vì những lý do trên mà khoá học "Cấu trúc dữ liệu và giải thuật Thực chiến với LeetCode" được ra đời.

Bạn sẽ học được gì?

  • Học cách sử dụng cách thư viện của Java để thực thi các thuật toán.
  • Biết cách đánh giá một thuật toán dựa trên độ phức tạp (không gian và thời gian).
  • Tự mình cài đặt lại các cấu trúc dữ liệu cũng như thuật toán đó.
  • Hệ thống lại toàn bộ cấu trúc dữ liệu và thuật toán đã được học.
Nội dung khóa học
123 Bài học 18:48:40 Hours
Phần 1: Giới thiệu
10 Bài học 00:59:08 Hours
  • Link Xem Youtube (Mua khóa học để lấy link nhé)
    .
  • Bài 1: Hướng dẫn xem video trên Unica
    Học thử 00:01:06
  • Bài 2: Giới thiệu khoá học
    Học thử 00:06:30
  • Bài 3: Nội dung của khoá học
    Học thử 00:05:23
  • Bài 4: Cách học của khoá học [QUAN TRỌNG]
    Học thử 00:03:08
  • Bài 5: Tham gia group giải bài tập [QUAN TRỌNG]
    Học thử 00:07:13
  • Bài 6: Hướng dẫn chạy và debug với Visual Studio Code
    Học thử 00:14:00
  • Bài 7: Hướng dẫn chạy và debug với IntelliJ
    Học thử 00:11:49
  • Bài 8: Cách làm bài và nộp bài trên LeetCode
    Học thử 00:08:22
  • Bài 9: Tham gia group Discord
    00:01:37
Phần 2: Array and String | Mảng và Chuỗi
10 Bài học 02:50:59 Hours
  • Bài 10: Duyệt mảng
    Học thử 00:27:47
  • Bài 11: Thêm/Chèn phần tử vào mảng
    Học thử 00:20:41
  • Bài 12: Xoá phần tử trong mảng
    Học thử 00:14:42
  • Bài 13: Kỹ thuật 2 con trỏ: Xoá phần tử trong mảng
    00:09:17
  • Bài 14: Kỹ thuật 2 con trỏ: Thêm phần tử vào mảng
    00:17:53
  • Bài 15: List và Array List trong Java
    00:10:08
  • Bài 16: Làm việc với mảng 2 chiều
    00:21:01
  • Bài 17: Giới thiệu về String, Character và char
    00:22:32
  • Bài 18: Thực hành với String và Character
    00:20:22
  • Bài 19: Làm quen với StringBuilder
    00:06:36
Phần 3: Sorting (1) | Các thuật toán sắp xếp (Phần 1)
5 Bài học 00:36:02 Hours
  • Bài 20: Giới thiệu
    00:00:21
  • Bài 21: Bubble Sort | Sắp xếp nỏi bọt
    00:09:25
  • Bài 22: Insertion Sort | Sắp xếp chèn
    00:07:07
  • Bài 23: Selection Sort | Sắp xếp chọn
    00:04:50
  • Bài 24: Bài toán tìm số lớn thứ 3
    00:14:19
Phần 4: Recursion | Đệ quy
14 Bài học 01:01:34 Hours
  • Bài 25: Giới thiệu về đệ quy | Định nghĩa đệ quy
    00:02:11
  • Bài 26: Đặc điểm của đệ quy
    00:01:17
  • Bài 27: Thực hành 1: Tính giai thừa (phần 1)
    00:03:39
  • Bài 28: Thực hành 1: Tính giai thừa (phần 2)
    00:08:05
  • Bài 29: Thực hành 2: Tính số Fibonacy (phần 1)
    00:05:40
  • Bài 30: Thực hành 2: Tính số Fibonacy (phần 2)
    00:05:52
  • Bài 31: Một số bài toán khác
    00:02:19
  • Bài 32: Phân loại đệ quy (phần 1)
    Học thử 00:03:41
  • Bài 33: Phân loại đệ quy (phần 2)
    00:01:22
  • Bài 34: Ưu điểm và nhược điểm của đệ quy
    00:01:55
  • Bài 35: Tối ưu hoá đệ quy
    00:05:47
  • Bài 36: Khử đệ quy
    00:03:39
  • Bài 37: Nên sử dụng đệ quy khi nào?
    00:01:19
  • Bài 38: Hai cách cài đặt Đệ quy
    00:14:48
Phần 5: Binary Search | Tìm kiếm nhị phân
4 Bài học 00:28:47 Hours
  • Bài 39: Giới thiệu về Binary Search
    00:07:42
  • Bài 40: Cài đặt Binary Search bằng vòng lặp
    00:10:04
  • Bài 41: Cài đặt Binary Search bằng đệ quy
    00:07:24
  • Bài 42: Đánh giá thuật toán
    00:03:37
Phần 6: Sorting (2) | Các thuật toán sắp xếp (phần 2)
6 Bài học 01:17:08 Hours
  • Bài 43: Merge Sort: Ý tưởng
    00:03:59
  • Bài 44: Merge Sort: Cài đặt
    00:13:40
  • Bài 45: Merge Sort: Testing
    00:08:39
  • Bài 46: Quick Sort: Ý tưởng
    00:13:27
  • Bài 47: Quick Sort: Cài đặt
    00:18:35
  • Bài 48: Sử dụng thư viện sắp xếp trong Java
    00:18:48
Phần 7: Độ phức tạp của thuật toán
10 Bài học 01:03:21 Hours
  • Bài 49: Giới thiệu về Space Complexity
    00:07:31
  • Bài 50: Giới thiệu về Time Complexity
    00:07:05
  • Bài 51: Big O notation
    00:07:47
  • Bài 52: Các độ phức tạp cơ bản
    00:06:43
  • Bài 53: Thực hành 1: Giải thuật tìm kiếm tuần tự
    Học thử 00:01:58
  • Bài 54: Thực hành 2: Giải thuật Sắp xếp nổi bọt
    00:05:15
  • Bài 55: Thực hành 3: Giải thuật Fibonaci
    00:04:42
  • Bài 56: Thực hành 4: Giải thuật tìm kiếm nhị phân
    00:06:04
  • Bài 57: Thực hành 5: Thuật toán Merge Sort
    00:10:12
  • Bài 58: Thực hành 6: Thuật toán Quick Sort
    00:06:04
Phần 8: Linked List | Danh sách liên kết
10 Bài học 01:35:03 Hours
  • Bài 59: Giới thiệu Linked List
    00:10:48
  • Bài 60: Cài đặt Linked List
    00:06:56
  • Bài 61: Thêm phần tử vào đầu
    00:04:30
  • Bài 62: Thêm phần tử vào cuối
    00:05:04
  • Bài 63: Thêm phần tử vào giữa
    00:09:53
  • Bài 64: Xoá phần tử ở đầu
    00:02:17
  • Bài 65: Xoá phần tử ở cuối
    00:06:39
  • Bài 66: Xoá phần tử ở giữa
    00:13:31
  • Bài 67: Bài toán đảo ngược một Linked List (Sử dụng vòng lặp)
    00:12:09
  • Bài 68: Bài toán đảo ngược một Linked List (Sử dụng đệ quy)
    00:23:16
Phần 9: Stack and Queue | Ngăn xếp và Hàng đợi
9 Bài học 01:24:35 Hours
  • Bài 69: Giới thiệu Stack & Queue
    00:01:45
  • Bài 70: Các thao tác cơ bản với Stack & Queue
    00:03:39
  • Bài 71: Tạo interface cho Stack và Queue
    Học thử 00:03:24
  • Bài 72: Cài đặt Stack với Mảng
    00:10:28
  • Bài 73: Cài đặt Queue với Mảng
    00:11:59
  • Bài 74: Cài đặt Stack với Linked List
    00:12:21
  • Bài 75: Cài đặt Queue với Linked List
    00:11:01
  • Bài 76: Stack trong Java
    00:15:45
  • Bài 77: Queue trong Java
    00:14:13
Phần 10: Hash Table | Set and Map
12 Bài học 01:43:56 Hours
  • Bài 78: Giới thiệu về Hash Table
    00:05:20
  • Bài 79: Design a Hash Function
    00:08:21
  • Bài 80: Collision và cách xử lý
    00:02:30
  • Bài 81: Ứng dụng của Hash Table
    00:04:40
  • Bài 82: Design a Hash Set
    00:06:14
  • Bài 83: Implement a HashSet (phần 1)
    00:08:37
  • Bài 84: Implement a HashSet (phần 2)
    00:11:25
  • Bài 85: Design a Hash Map
    00:06:57
  • Bài 86: Implement a HashMap (phần 1)
    00:12:02
  • Bài 87: Implement a HashMap (phần 2)
    00:06:55
  • Bài 88: HashSet in Java
    00:12:57
  • Bài 89: HashMap in Java
    00:17:58
Phần 11: Tree | Cây
10 Bài học 01:47:20 Hours
  • Bài 90: Giới thiệu về Tree, Binary Tree, Binary Search Tree
    00:11:19
  • Bài 91: Xây dựng cây BST
    00:08:13
  • Bài 92: Thêm một node vào cây BST (Vòng lặp)
    00:18:46
  • Bài 93: Thêm một node vào cây BST (Đệ quy)
    00:06:39
  • Bài 94: Xoá một node khỏi cây BST
    00:21:19
  • Bài 95: Tìm kiếm trên cây BST
    00:03:32
  • Bài 96: Duyệt cây theo 3 thứ tự (Lý thuyết)
    00:06:28
  • Bài 97: Duyệt cây theo 3 thứ tự (Implement)
    00:10:20
  • Bài 98: Bài toán tính chiều cao cây
    00:07:15
  • Bài 99: Bài toán tính tổng trên cây
    00:13:29
Phần 12: Graph | Đồ thị
8 Bài học 01:33:22 Hours
  • Bài 100: Giới thiệu về Đồ thị
    00:17:12
  • Bài 101: Giới thiệu về DFS - Tìm kiếm theo chiều sâu
    Học thử 00:04:29
  • Bài 102: Cài đặt DFS với Stack
    00:06:42
  • Bài 103: Cài đặt DFS với đệ quy
    00:07:00
  • Bài 104: Cài đặt BFS với Queue
    00:05:53
  • Bài 105: Ứng dụng DFS: Tính số miền liên thông
    00:14:53
  • Bài 106: Thuật toán Dijkstra (Tìm đường đi ngắn nhất): Lý thuyết
    00:15:53
  • Bài 107: Thuật toán Dijkstra (Tìm đường đi ngắn nhất): Cài đặt
    00:21:20
Phần 13: Heap | Đống
10 Bài học 01:08:15 Hours
  • Bài 108: Giới thiệu về Heap
    00:05:31
  • Bài 109: Biểu diễn Heap
    00:11:33
  • Bài 110: Các thao tác với Heap
    00:02:46
  • Bài 111: Khởi tạo Heap
    00:03:59
  • Bài 112: Thêm phần tử vào Heap
    00:07:01
  • Bài 113: Xóa phần tử ở Root
    00:13:58
  • Bài 114: Xóa phần tử ở vị trí bất kỳ
    00:06:59
  • Bài 115: Test trên HackerRank
    00:06:59
  • Bài 116: Heap trong Java
    00:06:56
  • Bài 117: Cách sử dụng và bài tập
    00:02:33
Phần 14: Các CTDL và giải thuật NÂNG CAO
5 Bài học 01:19:10 Hours
  • Bài 118: Bit Manipulation - Các thao tác xử lý với Bit
    00:03:40
  • Bài 119: Backtracking - Thuật toán quay lui
    00:37:24
  • Bài 120: Dynamic Programming - Quy Hoạch Động
    00:13:48
  • Bài 121: Trie / Prefix Tree - Cây tiền tố
    00:21:43
  • Bài 122: Tổng kết
    Học thử 00:02:35

Câu hỏi thường gặp

Khóa học có thể xem offline được không?
Vì lý do bảo mật. Khóa học này chỉ có thể Xem Online trên web. Hỗ trợ thêm link Youtube
+ Xem thêm
Khóa học liên quan
00:00:00 Hours
0 147 Miễn phí
06:10:32 Hours
0 110 Miễn phí
07:20:08 Hours
Cập nhật Fri, 17-Feb-2023
0 3 499000₫ 35000₫
02:49:17 Hours
Cập nhật Fri, 17-Feb-2023
0 62 Miễn phí
Thông tin giản viên

Admin BKH

5 Đánh giá | 828 Sinh viên | 417 Khóa học
Nhận xét của học viên
0
0 Đánh giá
  • (0)
  • (0)
  • (0)
  • (0)
  • (0)

Đánh giá

699000₫ 40000₫
Bao gồm: