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