Mô tả

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 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!

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

Làm quen với các cấu trúc dữ liệu giải thuật CƠ BẢN và NÂNG CAO

Tự cài đặt được các cấu trúc dữ liệu và giải thuật

Biết được cách sử dụng thư viện tương ứng với các CTDL và GT đó

Thực hành bởi các bài tập thực tế trên LeetCode và HackerRank

Yêu cầu

  • Bạn phải biết lập trình cơ bản một ngôn ngữ bất kỳ

Nội dung khoá học

14 sections

Giới thiệu

9 lectures
Giới thiệu khoá học
06:30
Nội dung của khoá học
05:32
Cách học của khoá học [QUAN TRỌNG]
03:08
Tham gia group giải bài tập [QUAN TRỌNG]
07:13
Lưu ý ĐẶC BIỆT dành cho học viên Udemy [QUAN TRỌNG]
01:00
Hướng dẫn chạy và debug với Visual Studio Code
14:00
Hướng dẫn chạy và debug với IntelliJ
11:49
Cách làm bài và nộp bài trên LeetCode
08:22
Tham gia group Discord
01:37

Array and String | Mảng và Chuỗi

10 lectures
Duyệt mảng
27:47
Thêm/Chèn phần tử vào mảng
20:41
Xoá phần tử trong mảng
14:42
Kỹ thuật 2 con trỏ: Thêm phần tử vào mảng
17:53
Kỹ thuật 2 con trỏ: Xoá phần tử trong mảng
09:17
List và Array List trong Java
10:08
Làm việc với mảng 2 chiều
21:01
Giới thiệu về String, Character và char
22:32
Thực hành với String và Character
20:22
Làm quen với StringBuilder
06:36

Sorting (1) | Các thuật toán sắp xếp (Phần 1)

4 lectures
Giới thiệu
00:21
Bubble Sort | Sắp xếp nỏi bọt
09:25
Selection Sort | Sắp xếp chọn
04:50
Insertion Sort | Sắp xếp chèn
07:07

Recursion | Đệ quy

14 lectures
Giới thiệu về đệ quy | Định nghĩa đệ quy
02:11
Đặc điểm của đệ quy
01:17
Thực hành 1: Tính giai thừa (phần 1)
03:39
Thực hành 1: Tính giai thừa (phần 2)
08:05
Thực hành 2: Tính số Fibonacy (phần 1)
05:40
Thực hành 2: Tính số Fibonacy (phần 2)
05:52
Một số bài toán khác
02:19
Phân loại đệ quy (phần 1)
03:41
Phân loại đệ quy (phần 2)
01:22
Ưu điểm và nhược điểm của đệ quy
01:55
Tối ưu hoá đệ quy
05:47
Khử đệ quy
03:39
Nên sử dụng đệ quy khi nào?
01:19
Hai cách cài đặt đệ quy
14:48

Binary Search | Tìm kiếm nhị phân

4 lectures
Giới thiệu về Binary Search
07:42
Cài đặt Binary Search bằng vòng lặp
10:04
Cài đặt Binary Search bằng đệ quy
07:24
Đánh giá thuật toán
03:37

Sorting (2) | Các thuật toán sắp xếp (phần 2)

6 lectures
Merge Sort: Ý tưởng
03:59
Merge Sort: Cài đặt
13:40
Merge Sort: Testing
08:39
Quick Sort: Ý tưởng
13:27
Quick Sort: Cài đặt
18:35
Sử dụng thư viện sắp xếp trong Java
18:48

Độ phức tạp của thuật toán

10 lectures
Giới thiệu về Space Complexity
07:31
Giới thiệu về Time Complexity
07:05
Big O notation
07:47
Các độ phức tạp cơ bản
06:51
Thực hành 1: Giải thuật tìm kiếm tuần tự
01:58
Thực hành 2: Giải thuật Sắp xếp nổi bọt
05:15
Thực hành 3: Giải thuật Fibonaci
04:42
Thực hành 4: Giải thuật tìm kiếm nhị phân
06:04
Thực hành 5: Thuật toán Merge Sort
10:12
Thực hành 6: Thuật toán Quick Sort
06:04

Linked List | Danh sách liên kết

8 lectures
Giới thiệu Linked List
10:48
Cài đặt Linked List
06:56
Thêm phần tử vào đầu
04:30
Thêm phần tử vào cuối
05:04
Thêm phần tử vào giữa
09:53
Xoá phần tử ở đầu
02:17
Xoá phần tử ở cuối
06:39
Xoá phần tử ở giữa
13:31

Stack and Queue | Ngăn xếp và Hàng đợi

9 lectures
Giới thiệu Stack & Queue
01:45
Các thao tác cơ bản với Stack & Queue
03:39
Tạo interface cho Stack và Queue
03:24
Cài đặt Stack với Mảng
10:28
Cài đặt Queue với Mảng
11:59
Cài đặt Stack với Linked List
12:21
Cài đặt Queue với Linked List
11:01
Stack trong Java
15:45
Queue trong Java
14:13

Hash Table | Set and Map

12 lectures
Giới thiệu về Hash Table
05:20
Design a Hash Function
08:21
Collision và cách xử lý
02:30
Ứng dụng của Hash Table
04:40
Design a Hash Set
06:14
Implement a HashSet (phần 1)
08:37
Implement a HashSet (phần 2)
11:25
Design a Hash Map
06:57
Implement a HashMap (phần 1)
12:02
Implement a HashMap (phần 2)
06:55
HashSet in Java
12:57
HashMap in Java
17:58

Tree | Cây

10 lectures
Giới thiệu về Tree, Binary Tree, Binary Search Tree
11:19
Xây dựng cây BST
08:13
Thêm một node vào cây BST (Vòng lặp)
18:46
Thêm một node vào cây BST (Đệ quy)
06:39
Xoá một node khỏi cây BST
21:19
Tìm kiếm trên cây BST
03:32
Duyệt cây theo 3 thứ tự (Lý thuyết)
06:28
Duyệt cây theo 3 thứ tự (Implement)
10:20
Bài toán tính chiều cao cây
07:15
Bài toán tính tổng trên cây
13:29

Graph | Đồ thị

8 lectures
Giới thiệu về Đồ thị
17:12
Giới thiệu về DFS - Tìm kiếm theo chiều sâu
04:29
Cài đặt DFS với Stack
06:42
Cài đặt DFS với đệ quy
07:00
Cài đặt BFS với Queue
05:53
Ứng dụng DFS: Tính số miền liên thông
14:53
Thuật toán Dijkstra (Tìm đường đi ngắn nhất): Lý thuyết
15:53
Thuật toán Dijkstra (Tìm đường đi ngắn nhất): Cài đặt
21:20

Heap | Đống

10 lectures
Giới thiệu về Heap
05:31
Biểu diễn Heap
11:33
Các thao tác với Heap
02:46
Khởi tạo Heap
03:59
Thêm phần tử vào Heap
07:01
Xóa phần tử ở Root
13:58
Xóa phần tử ở vị trí bất kỳ
06:59
Test trên HackerRank
06:59
Heap trong Java
06:56
Cách sử dụng và bài tập
02:33

Các CTDL và giải thuật NÂNG CAO

4 lectures
Bit Manipulation - Các thao tác xử lý với Bit
03:40
Backtracking - Thuật toán quay lui
37:24
Dynamic Programming - Quy Hoạch Động
13:48
Trie / Prefix Tree - Cây tiền tố
21:43

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.