Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Java Data Structures and Algorithms Masterclass

Khóa học chuyên sâu về Cấu trúc Dữ liệu và Thuật toán Java

Khóa học chuyên sâu về Cấu trúc Dữ liệu và Thuật toán Java

100+ Câu hỏi Phỏng vấn DSA để chinh phục FAANG kèm Ví dụ Minh họa Sinh động giúp Hiểu sâu và Học nhanh

4.6
(7,770 đánh giá)
75,740 học viên
Giảng viên
Elshad Karimov
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
79.000đ 2.349.000đ -97%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
46.5 giờ video
464 bài giảng
81 bài quiz
74 bài coding
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 07/06/2026

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

Học, triển khai và sử dụng các Cấu trúc Dữ liệu khác nhau
Học, triển khai và sử dụng các Thuật toán khác nhau
Trở thành lập trình viên giỏi hơn bằng cách nắm vững kiến thức cơ bản khoa học máy tính
Học mọi thứ bạn cần để vượt qua các buổi phỏng vấn coding khó
Chinh phục buổi phỏng vấn Coding với 100+ câu hỏi kèm giải thích
Độ phức tạp về Thời gian và Bộ nhớ của Cấu trúc Dữ liệu và Thuật toán
Đệ quy
Big O
Quy hoạch động
Thuật toán Chia để trị
Thuật toán Đồ thị
Thuật toán Tham lam

Yêu cầu

Kỹ năng lập trình Java cơ bản

Đối tượng phù hợp

Dành cho bất kỳ ai quan tâm và muốn tìm hiểu thêm về cấu trúc dữ liệu, thuật toán hoặc quy trình phỏng vấn kỹ thuật!
Lập trình viên tự học có kiến thức Java cơ bản, muốn chuyên sâu về Cấu trúc Dữ liệu & Thuật toán và bắt đầu phỏng vấn cho vị trí kỹ thuật!
Sinh viên khoa học máy tính muốn tài liệu bổ trợ về Cấu trúc Dữ liệu & Thuật toán và chuẩn bị phỏng vấn sau khi tốt nghiệp!
Lập trình viên chuyên nghiệp cần luyện tập cho các buổi phỏng vấn coding sắp tới.

Nội dung khóa học

49 phần • 443 bài giảng
1 Tổng quan chương trình học
2 Cách tận dụng tối đa khóa học này
3 Cấu trúc dữ liệu là gì?
4 Thuật toán là gì?
5 Tại sao Cấu trúc Dữ liệu và Thuật toán lại quan trọng?
6 Các loại Cấu trúc Dữ liệu
7 Các loại Thuật toán
8 Tài liệu bài giảng
9 Động lực học tập
1 Big O là gì?
2 Các ký hiệu Big O - (Big O, Big Omega, Big Theta)
3 Big O - O(1)
4 Big O - O(N)
5 Bỏ qua hằng số
6 Big O - O(N^2)
7 Bỏ qua các thành phần không chi phối
8 Big O - O(logN)
9 Phép cộng so với Phép nhân
10 Độ phức tạp Bộ nhớ
11 Cách đo lường mã code bằng Big O
1 Mảng là gì?
2 Các loại mảng
3 Mảng trong bộ nhớ
4 Tạo một mảng
5 Chèn phần tử vào mảng
6 Truy cập phần tử trong mảng
7 Duyệt mảng
8 Tìm kiếm phần tử trong mảng
9 Xóa phần tử mảng
10 Độ phức tạp Thời gian và Bộ nhớ của Mảng 1 chiều
11 Tạo mảng hai chiều
12 Chèn phần tử - Mảng hai chiều
13 Truy cập phần tử mảng hai chiều
14 Duyệt mảng hai chiều
15 Tìm kiếm trong mảng hai chiều
16 Xóa phần tử mảng hai chiều
17 Độ phức tạp Thời gian và Bộ nhớ của Mảng 2 chiều
18 Khi nào nên dùng/tránh dùng mảng
19 Tải tài nguyên
1 Mục tiêu - những gì bạn sẽ làm được khi kết thúc phần này
2 Tính nhiệt độ trung bình
3 Tìm những ngày có nhiệt độ trên mức trung bình
4 Tải tài nguyên
1 Lời giải cho hàm Middle
2 Lời giải cho Mảng 2 chiều
3 Lời giải cho Best Score
4 Lời giải cho Missing Number
5 Lời giải cho Duplicate Number
6 Lời giải cho Remove Duplicates from Sorted Array - LeetCode 26
7 Lời giải cho Best Time to Buy and Sell Stock - LeetCode 121
8 Lời giải cho Two Sum - LeetCode 1
9 Lời giải - Tìm một số trong mảng
10 Lời giải - Tích lớn nhất của hai số nguyên
11 Lời giải - IsUnique / Contains Duplicate - LeetCode 217
12 Lời giải - Hoán vị
13 Xoay ma trận / hình ảnh - LeetCode 48
14 Tải tài nguyên
1 ArrayList là gì?
2 ArrayList trong bộ nhớ
3 Tạo ArrayList
4 Chèn phần tử vào ArrayList
5 Truy cập phần tử trong ArrayList
6 Duyệt ArrayList
7 Tìm kiếm phần tử trong ArrayList
8 Xóa phần tử trong ArrayList
9 Độ phức tạp Thời gian và Bộ nhớ của ArrayList
1 Câu 1 - Độ phức tạp Thời gian của phương thức trả về Tổng và Tích của Mảng
2 Câu 2 - Độ phức tạp Thời gian của phương thức Print Pairs
3 Câu 3 - Độ phức tạp Thời gian của phương thức Print Unordered Pairs
4 Câu 4 - Tìm Độ phức tạp Thời gian cho phương thức đã cho
5 Câu 5 - Tìm Độ phức tạp Thời gian cho phương thức đã cho
6 Câu 6 - Độ phức tạp Thời gian của hàm đảo ngược mảng
7 Câu 7 - Tương đương với O(N)
1 Danh sách liên kết là gì?
2 Danh sách liên kết so với Mảng
3 Các loại danh sách liên kết
4 Danh sách liên kết trong bộ nhớ
5 Tạo Danh sách liên kết đơn
6 Chèn phần tử vào Danh sách liên kết đơn trong bộ nhớ
7 Thuật toán chèn trong Danh sách liên kết đơn
8 Phương thức chèn trong Danh sách liên kết đơn
9 Duyệt Danh sách liên kết đơn
10 Tìm kiếm trong Danh sách liên kết đơn
11 Xóa một nút khỏi Danh sách liên kết đơn
12 Phương thức xóa trong Danh sách liên kết đơn
13 Xóa toàn bộ Danh sách liên kết đơn
14 Độ phức tạp Thời gian và Bộ nhớ của Danh sách liên kết đơn
15 Tải tài nguyên
1 Lời giải cho Danh sách liên kết đơn - Push
2 Lời giải cho Danh sách liên kết đơn - Pop
3 Lời giải cho Danh sách liên kết đơn - Insert
4 Lời giải cho Danh sách liên kết đơn - Get
5 Lời giải cho Danh sách liên kết đơn - Rotate
6 Lời giải cho Danh sách liên kết đơn - Set
7 Lời giải cho Danh sách liên kết đơn - Remove
1 Tạo Danh sách liên kết đơn vòng
2 Chèn phần tử vào Danh sách liên kết đơn vòng
3 Thuật toán chèn trong Danh sách liên kết đơn vòng
4 Phương thức chèn Danh sách liên kết đơn vòng
5 Duyệt Danh sách liên kết đơn vòng
6 Tìm kiếm nút trong Danh sách liên kết đơn vòng
7 Xóa một nút khỏi Danh sách liên kết đơn vòng
8 Thuật toán xóa trong Danh sách liên kết đơn vòng
9 Phương thức xóa trong Danh sách liên kết đơn vòng
10 Xóa toàn bộ Danh sách liên kết đơn vòng
11 Độ phức tạp Thời gian và Bộ nhớ của Danh sách liên kết đơn vòng
12 Tải tài nguyên
1 Lời giải - Triển khai Danh sách liên kết đơn vòng
2 Lời giải - Xóa một nút khỏi Danh sách liên kết đơn vòng
3 Lời giải cho Đếm số nút
1 Tạo Danh sách liên kết đôi
2 Chèn phần tử Danh sách liên kết đôi
3 Thuật toán chèn Danh sách liên kết đôi
4 Phương thức chèn Danh sách liên kết đôi
5 Duyệt Danh sách liên kết đôi
6 Duyệt ngược Danh sách liên kết đôi
7 Tìm kiếm nút trong Danh sách liên kết đôi
8 Xóa một nút trong Danh sách liên kết đôi
9 Thuật toán xóa Danh sách liên kết đôi
10 Phương thức xóa trong Danh sách liên kết đôi
11 Xóa toàn bộ Danh sách liên kết đôi
12 Độ phức tạp Thời gian và Bộ nhớ của Danh sách liên kết đôi
13 Tải tài nguyên
1 Tạo Danh sách liên kết đôi
2 Chèn phần tử Danh sách liên kết đôi vòng
3 Thuật toán chèn Danh sách liên kết đôi vòng
4 Phương thức chèn Danh sách liên kết đôi vòng
5 Duyệt Danh sách liên kết đôi vòng
6 Duyệt ngược Danh sách liên kết đôi vòng
7 Tìm kiếm nút trong Danh sách liên kết đôi vòng
8 Xóa phần tử trong Danh sách liên kết đôi vòng
9 Thuật toán xóa trong Danh sách liên kết đôi vòng
10 Phương thức xóa trong Danh sách liên kết đôi vòng
11 Xóa toàn bộ Danh sách liên kết đôi vòng
12 Độ phức tạp Thời gian và Bộ nhớ của Danh sách liên kết đôi vòng
13 Độ phức tạp Thời gian của Mảng so với Danh sách liên kết
14 Tải tài nguyên
1 Lớp Danh sách liên kết
2 Lời giải - Remove Dups
3 Lời giải - Return Nth to Last
4 Lời giải - Partition
5 Lời giải - Sum Lists
6 Lời giải - Intersection
7 Tải tài nguyên
1 Ngăn xếp là gì và tại sao cần dùng?
2 Các thao tác với Ngăn xếp
3 Ngăn xếp dùng Mảng so với Danh sách liên kết
4 Các thao tác Ngăn xếp dùng Mảng (Tạo, isEmpty, isFull)
5 Các thao tác Ngăn xếp dùng Mảng (Push, Pop, Peek, Delete)
6 Độ phức tạp Thời gian và Bộ nhớ của Ngăn xếp dùng Mảng
7 Các thao tác Ngăn xếp dùng Danh sách liên kết
8 Các phương thức Ngăn xếp - Push, Pop, Peek, Delete và isEmpty dùng Danh sách liên kết
9 Độ phức tạp Thời gian và Bộ nhớ của Ngăn xếp dùng Danh sách liên kết
10 Khi nào nên dùng/tránh dùng Ngăn xếp
11 Tải tài nguyên
1 Lời giải và Giải thích - Triển khai Lớp Ngăn xếp
2 Lời giải và Giải thích - Phương thức Push
3 Lời giải/Giải thích và Độ phức tạp Thời gian/Bộ nhớ - Phương thức Pop
4 Lời giải/Giải thích và Độ phức tạp Thời gian/Bộ nhớ của Trình kiểm tra Dấu ngoặc Cân bằng
1 Hàng đợi là gì?
2 Các thao tác Hàng đợi Tuyến tính dùng Mảng
3 Các phương thức Tạo, isFull, isEmpty và enQueue dùng Hàng đợi Tuyến tính Mảng
4 Các phương thức Dequeue, Peek và Delete dùng Hàng đợi Tuyến tính Mảng
5 Độ phức tạp Thời gian và Bộ nhớ của Hàng đợi Tuyến tính dùng Mảng
6 Tại sao cần Hàng đợi Vòng?
7 Các thao tác Hàng đợi Vòng dùng Mảng
8 Phương thức Tạo, Enqueue, isFull và isEmpty trong Hàng đợi Vòng dùng Mảng
9 Phương thức Dequeue, Peek và Delete trong Hàng đợi Vòng dùng Mảng
10 Độ phức tạp Thời gian và Không gian của Hàng đợi Vòng dùng Mảng
11 Các thao tác Hàng đợi dùng Danh sách Liên kết
12 Phương thức Tạo, Enqueue và isEmpty trong Hàng đợi dùng Danh sách Liên kết
13 Phương thức Dequeue, Peek và Delete trong Hàng đợi dùng Danh sách Liên kết
14 Độ phức tạp Thời gian và Không gian của Hàng đợi dùng Danh sách Liên kết
15 So sánh Cài đặt dùng Mảng và Danh sách Liên kết
16 Khi nào Nên/Tránh Dùng Hàng đợi?
17 Tải Tài nguyên
1 Mục tiêu
2 Lời giải - Three in One
3 Lời giải - Stack Minimum
4 Lời giải Phần 1 - Stack of Plates
5 Lời giải Phần 2 - Stack of Plates
6 Lời giải Phần 3 - Câu hỏi Mở rộng
7 Lời giải - Queue via Stacks
8 Lời giải - Animal Shelter
9 Tải Tài nguyên
1 Mục tiêu: Những gì bạn sẽ học đến cuối phần này
2 Đệ quy là gì?
3 Tại sao chúng ta cần Đệ quy?
4 Logic đằng sau Đệ quy
5 Giải pháp Đệ quy so với Lặp
6 Khi nào Nên/Tránh Dùng Đệ quy?
7 Cách Viết Đệ quy trong 3 Bước
8 Dãy Fibonacci dùng Đệ quy
9 Cách Đo lường Thuật toán Đệ quy
10 Cách Đo lường Thuật toán Đệ quy với Nhiều Lần gọi
11 Tải Tài nguyên
1 Câu hỏi 1 - Tổng các Chữ số
2 Câu hỏi 2 - Lũy thừa
3 Câu hỏi 3 - Ước chung Lớn nhất
4 Câu hỏi 4 - Chuyển đổi Thập phân sang Nhị phân
5 Tải Tài nguyên
1 Lưu ý Quan trọng!
2 LỜI GIẢI PHẦN 1
3 LỜI GIẢI PHẦN 2
1 Cây là gì?
2 Tại sao cần Cây?
3 Thuật ngữ về Cây
4 Tạo một Cây Cơ bản trong Java
5 Cây Nhị phân là gì?
6 Các Loại Cây Nhị phân
7 Biểu diễn Cây Nhị phân
8 Tạo Cây Nhị phân dùng Danh sách Liên kết
9 Duyệt Tiền thứ tự (PreOrder) trong Cây Nhị phân dùng Danh sách Liên kết
10 Duyệt Trung thứ tự (InOrder) trong Cây Nhị phân dùng Danh sách Liên kết
11 Duyệt Hậu thứ tự (PostOrder) trong Cây Nhị phân dùng Danh sách Liên kết
12 Duyệt Theo tầng (LevelOrder) trong Cây Nhị phân dùng Danh sách Liên kết
13 Phương thức Tìm kiếm trong Cây Nhị phân (Danh sách Liên kết)
14 Phương thức Chèn trong Cây Nhị phân (Danh sách Liên kết)
15 Xóa một Nút trong Cây Nhị phân (Danh sách Liên kết)
16 Xóa Toàn bộ Cây Nhị phân (Danh sách Liên kết)
17 Tạo Cây Nhị phân (Mảng)
18 Phương thức Chèn Cây Nhị phân (Mảng)
19 Duyệt Tiền thứ tự Cây Nhị phân (Mảng)
20 Duyệt Trung thứ tự Cây Nhị phân (Mảng)
21 Duyệt Hậu thứ tự Cây Nhị phân (Mảng)
22 Duyệt Theo tầng Cây Nhị phân (Mảng)
23 Phương thức Tìm kiếm Cây Nhị phân (Mảng)
24 Xóa một Nút Cây Nhị phân (Mảng)
25 Xóa Cây Nhị phân (Mảng)
26 So sánh Mảng và Danh sách Liên kết trong Cài đặt Cây Nhị phân
27 Tải Tài nguyên
1 Lời giải Duyệt Trung thứ tự (Lặp) / Độ phức tạp Thời gian và Không gian
2 Lời giải Duyệt Tiền thứ tự (Lặp) / Độ phức tạp Thời gian và Không gian
3 Lời giải Duyệt Hậu thứ tự (Lặp) / Độ phức tạp Thời gian và Không gian
1 Cây Tìm kiếm Nhị phân là gì? Tại sao cần nó?
2 Tạo Cây Tìm kiếm Nhị phân
3 Chèn một Nút vào Cây Tìm kiếm Nhị phân
4 Duyệt Tiền thứ tự Cây Tìm kiếm Nhị phân
5 Duyệt Trung thứ tự Cây Tìm kiếm Nhị phân
6 Duyệt Hậu thứ tự Cây Tìm kiếm Nhị phân
7 Duyệt Theo tầng Cây Tìm kiếm Nhị phân
8 Tìm kiếm trong Cây Tìm kiếm Nhị phân
9 Xóa một Nút trong Cây Tìm kiếm Nhị phân
10 Xóa Cây Tìm kiếm Nhị phân
11 Độ phức tạp Thời gian và Không gian của Cây Tìm kiếm Nhị phân
12 Tải Tài nguyên
1 Cây AVL là gì?
2 Tại sao cần Cây AVL?
3 Các Thao tác Phổ biến trên Cây AVL
4 Chèn một Nút vào AVL (Điều kiện Trái-Trái)
5 Chèn một Nút vào AVL (Điều kiện Trái-Phải)
6 Chèn một Nút vào AVL (Điều kiện Phải-Phải)
7 Chèn một Nút vào AVL (Điều kiện Phải-Trái)
8 Chèn một Nút vào AVL (Tổng hợp)
9 Chèn một Nút vào AVL (Phương thức Thực hành)
10 Xóa một Nút khỏi AVL (LL, LR, RR, RL)
11 Xóa một Nút khỏi AVL (Tổng hợp)
12 Xóa một Nút khỏi AVL (Phương thức Thực hành)
13 Xóa Toàn bộ Cây AVL
14 Độ phức tạp Thời gian và Không gian của AVL
15 So sánh Cây Tìm kiếm Nhị phân và AVL
16 Tải Tài nguyên
1 Đống Nhị phân là gì? Tại sao cần Đống Nhị phân?
2 Các Thao tác Phổ biến trên Đống Nhị phân
3 Chèn một Nút vào Đống Nhị phân
4 Trích xuất một Nút từ Đống Nhị phân
5 Xóa Toàn bộ Đống Nhị phân
6 Độ phức tạp Thời gian và Không gian của Đống Nhị phân
7 Tải Tài nguyên
1 Trie là gì? Tại sao cần Trie?
2 Các Thao tác Phổ biến trên Trie (Tạo)
3 Chèn một Chuỗi vào Trie
4 Tìm kiếm một Chuỗi trong Trie
5 Xóa một Chuỗi khỏi Trie
6 Ứng dụng Thực tế của Trie
7 Tải Tài nguyên
1 Băm là gì? Tại sao cần Băm?
2 Thuật ngữ về Băm
3 Hàm Băm
4 Các Kỹ thuật Giải quyết Xung đột - Chuỗi Trực tiếp (Chèn)
5 Cài đặt Chuỗi Trực tiếp - (Tìm kiếm, Xóa)
6 Bảng Băm Đầy
7 Kỹ thuật Giải quyết Xung đột - Thăm dò Tuyến tính (Chèn)
8 Kỹ thuật Giải quyết Xung đột - Thăm dò Tuyến tính (Tìm kiếm, Xóa)
9 Kỹ thuật Giải quyết Xung đột - Định địa chỉ Mở: Thăm dò Bậc hai
10 Kỹ thuật Giải quyết Xung đột - Định địa chỉ Mở: Băm Kép
11 Ưu và Nhược điểm của các Kỹ thuật Giải quyết
12 Ứng dụng Thực tế của Băm
13 So sánh Băm với Cấu trúc Dữ liệu Khác
14 Tải Tài nguyên
1 Sắp xếp là gì?
2 Các Loại Sắp xếp
3 Thuật ngữ về Sắp xếp
4 Sắp xếp Nổi bọt
5 Sắp xếp Chọn
6 Sắp xếp Chèn
7 Sắp xếp Thùng
8 Sắp xếp Trộn
9 Sắp xếp Nhanh
10 Sắp xếp Đống
11 So sánh các Thuật toán Sắp xếp
12 Tải Tài nguyên
1 Giới thiệu về Thuật toán Tìm kiếm
2 Tìm kiếm Tuyến tính
3 Tìm kiếm Tuyến tính trong Java
4 Tìm kiếm Nhị phân
5 Tìm kiếm Nhị phân trong Java
6 Độ phức tạp Thời gian của Tìm kiếm Nhị phân
7 Tải Tài nguyên
1 Những gì bạn sẽ học
2 Đồ thị là gì? Tại sao cần Đồ thị
3 Thuật ngữ về Đồ thị
4 Các Loại Đồ thị
5 Biểu diễn Đồ thị
6 Đồ thị trong Java dùng Ma trận Kề
7 Đồ thị trong Java dùng Danh sách Kề
8 Tải Tài nguyên
1 Thuật toán Tìm kiếm Theo chiều Rộng (BFS)
2 Thuật toán Tìm kiếm Theo chiều Rộng (BFS) trong Java - Ma trận Kề
3 Thuật toán Tìm kiếm Theo chiều Rộng (BFS) trong Java - Danh sách Kề
4 Độ phức tạp Thời gian của Thuật toán Tìm kiếm Theo chiều Rộng (BFS)
5 Thuật toán Tìm kiếm Theo chiều Sâu (DFS)
6 Thuật toán Tìm kiếm Theo chiều Sâu (DFS) trong Java - Danh sách Kề
7 Thuật toán Tìm kiếm Theo chiều Sâu (DFS) trong Java - Ma trận Kề
8 Độ phức tạp Thời gian của Thuật toán Tìm kiếm Theo chiều Sâu (DFS)
9 So sánh Duyệt BFS và Duyệt DFS
10 Tải Tài nguyên
1 Sắp xếp Tô pô là gì?
2 Thuật toán Sắp xếp Tô pô
3 Sắp xếp Tô pô dùng Danh sách Kề
4 Sắp xếp Tô pô dùng Ma trận Kề
5 Độ phức tạp Thời gian và Không gian của Sắp xếp Tô pô
6 Tải Tài nguyên
1 Bài toán Đường đi Ngắn nhất Từ một Nguồn là gì?
2 Tìm kiếm Theo chiều Rộng (BFS) cho Bài toán Đường đi Ngắn nhất Từ một Nguồn (SSSPP)
3 BFS cho SSSPP trong Java dùng Danh sách Kề
4 BFS cho SSSPP trong Java dùng Ma trận Kề
5 Độ phức tạp Thời gian và Không gian của BFS cho SSSPP
6 Tại sao BFS không hoạt động với Đồ thị Có Trọng số?
7 Tại sao DFS không hoạt động cho SSSP?
8 Tải Tài nguyên
1 Thuật toán Dijkstra cho SSSPP
2 Thuật toán Dijkstra trong Java - Phần 1
3 Thuật toán Dijkstra trong Java - Phần 2
4 Thuật toán Dijkstra với Chu trình Âm
5 Tải Tài nguyên
1 Thuật toán Bellman Ford cho SSSPP (Bài toán đường đi ngắn nhất từ một đỉnh nguồn)
2 Thuật toán Bellman Ford với Chu trình Âm
3 Tại sao Bellman Ford chạy V-1 lần?
4 Triển khai Thuật toán Bellman Ford trong Java
5 So sánh BFS, Dijkstra và Bellman Ford
6 Tải Tài nguyên
1 Bài toán Đường đi Ngắn nhất Mọi Cặp Đỉnh là gì?
2 Chạy thử chi tiết cho Bài toán Đường đi Ngắn nhất Mọi Cặp Đỉnh
1 Thuật toán Floyd Warshall
2 Tại sao lại dùng Thuật toán Floyd Warshall?
3 Floyd Warshall với Chu trình Âm
4 Floyd Warshall trong Java
5 So sánh các Thuật toán BFS, Dijkstra, Bellman Ford và Floyd Warshall
6 Tải Tài nguyên
1 Cây Khung Nhỏ nhất là gì?
2 Tập hợp Rời rạc là gì?
3 Tập hợp Rời rạc trong Java
4 Tải Tài nguyên
1 Thuật toán Kruskal
2 Thuật toán Kruskal trong Java
3 Thuật toán Prim
4 Thuật toán Prim trong Java
5 So sánh Thuật toán Kruskal và Prim
6 Tải Tài nguyên
1 Giới thiệu
2 Lời giải cho Route Between Nodes
3 Lời giải cho Minimal Tree
4 Lời giải cho Check Balanced
5 Lời giải cho Validate BST
6 Lời giải cho Successor
7 Lời giải cho Build Order
8 Lời giải cho Find Common Ancestor
1 Thuật toán Tham lam là gì?
2 Các Thuật toán Tham lam Phổ biến
3 Bài toán Lựa chọn Hoạt động
4 Bài toán Lựa chọn Hoạt động trong Java
5 Bài toán Đổi tiền
6 Bài toán Đổi tiền trong Java
7 Bài toán Ba lô Phân số
8 Bài toán Ba lô Phân số trong Java
9 Tải Tài nguyên
1 Thuật toán Chia để Trị là gì?
2 Các Thuật toán Chia để Trị Thông dụng
3 Cách giải Dãy Fibonacci bằng phương pháp Chia để Trị
4 Số Nhân tố
5 Số Nhân tố trong Java
6 Kẻ trộm Nhà
7 Kẻ trộm Nhà trong Java
8 Chuyển đổi Một Chuỗi thành Chuỗi khác
9 Chuyển đổi Một Chuỗi thành Chuỗi khác trong Java
10 Bài toán Ba lô 0-1
11 Bài toán Ba lô 0-1 trong Java
12 Bài toán Dãy con Chung Dài nhất
13 Bài toán Dãy con Chung Dài nhất trong Java
14 Bài toán Dãy con Đối xứng Dài nhất
15 Bài toán Dãy con Đối xứng Dài nhất trong Java
16 Chi phí Tối thiểu để Đến Ô Cuối cùng
17 Chi phí Tối thiểu để Đến Ô Cuối cùng trong Java
18 Số Đường đi để Đến Ô Cuối cùng với Chi phí Cho trước
19 Số Đường đi để Đến Ô Cuối cùng với Chi phí Cho trước trong Java
20 Tải Tài nguyên
1 Lời giải Chia để Trị - countZeroes
2 Lời giải Chia để Trị - sortedFrequency
3 Lời giải Chia để Trị - findRotatedIndex
1 Quy hoạch Động là gì? (Tính chất Chồng chéo)
2 Tên gọi Quy hoạch Động bắt nguồn từ đâu?
3 Phương pháp Từ trên xuống với Ghi nhớ
4 Phương pháp Từ dưới lên với Bảng
5 So sánh Từ trên xuống và Từ dưới lên
6 Sắp xếp Trộn có phải là Quy hoạch Động không?
7 Bài toán Số Nhân tố sử dụng Quy hoạch Động
8 Số Nhân tố: Phương pháp Từ trên xuống và Từ dưới lên
9 Bài toán Kẻ trộm Nhà sử dụng Quy hoạch Động
10 Lời giải Kẻ trộm Nhà - Phương pháp Từ trên xuống
11 Lời giải Kẻ trộm Nhà - Phương pháp Từ dưới lên
12 Chuyển đổi chuỗi sử dụng Quy hoạch Động
13 Lời giải Chuyển đổi Chuỗi - Phương pháp Từ trên xuống
14 Lời giải Chuyển đổi Chuỗi - Phương pháp Từ dưới lên
1 LƯU Ý VỀ PHẦN NÀY
2 Lời giải Bài toán Độ dài Dãy con Lặp lại Dài nhất
3 Lời giải Bài toán Độ dài Dãy con Chung Dài nhất - Phương pháp Từ trên xuống
4 Lời giải Bài toán Độ dài Dãy con Chung Dài nhất - Phương pháp Từ dưới lên
5 Lời giải Bài toán Dãy con Chung Dài nhất
6 Lời giải Bài toán Dãy con Đối xứng Dài nhất - Phương pháp Từ trên xuống
7 Lời giải Bài toán Dãy con Đối xứng Dài nhất - Phương pháp Từ dưới lên
8 Lời giải Bài toán Chuỗi con Đối xứng Dài nhất
1 Giới thiệu
2 Bước 1 - Hiểu Vấn đề
3 Bước 2 - Ví dụ
4 Bước 3 - Phân tích
5 Bước 4 - Giải hoặc Đơn giản hóa
6 Bước 5 - Xem lại và Tối ưu
1 Quay lui là gì?
2 So sánh Quay lui và Vét cạn
3 Bài toán N - Hậu
4 Bài toán N - Hậu trong Java
1 Bài học Bổ sung

Giới thiệu khóa học

Welcome to the Java Data Structures and Algorithms Masterclass, the most modern, and the most complete Data Structures and Algorithms in Java course on the internet.

At 45+ hours, this is the most comprehensive course online to help you ace your coding interviews and learn about Data Structures and Algorithms in Java. You will see 100+ Interview Questions done at the top technology companies such as Apple,Amazon, Google and Microsoft and how to face Interviews with comprehensive visual explanatory video materials which will bring you closer towards landing the tech job of your dreams!

Learning Java is one of the fastest ways to improve your career prospects as it is one of the most in demand tech skills! This course will help you in better understanding every detail of Data Structures and how algorithms are implemented in high level programming language.

We'll take you step-by-step through engaging video tutorials and teach you everything you need to succeed as a professional programmer.

After finishing this course, you will be able to:

Learn basic algorithmic techniques such as greedy algorithms, binary search, sorting and dynamic programming to solve programming challenges.

Learn the strengths and weaknesses of a variety of data structures, so you can choose the best data structure for your data and applications

Learn many of the algorithms commonly used to sort data, so your applications will perform efficiently when sorting large datasets

Learn how to apply graph and string algorithms to solve real-world challenges: finding shortest paths on huge maps and assembling genomes from millions of pieces.


Why this course is so special and different from any other resource available online?


This course will take you from very beginning to a very complex and advanced topics in understanding Data Structures and Algorithms!

You will get video lectures explaining concepts clearly with comprehensive visual explanations throughout the course.

You will also see Interview Questions done at the top technology companies such as Apple,Amazon, Google and Microsoft.

I cover everything you need to know about technical interview process!


So whether you are interested in learning the top programming language in the world in-depth and interested in learning the fundamental Algorithms, Data Structures and performance analysis that make up the core foundational skillset of every accomplished programmer/designer or software architect and is excited to ace your next technical interview this is the course for you!


And this is what you get by signing up today:


Lifetime access to 44+ hours of HD quality videos. No monthly subscription. Learn at your own pace, whenever you want

Friendly and fast support in the course Q&A whenever you have questions or get stuck

FULL money back guarantee for 30 days!


This course is designed to help you to achieve your career goals. Whether you are looking to get more into Data Structures and Algorithms , increase your earning potential or just want a job with more freedom, this is the right course for you!

The topics that are covered in this course.

Section 1 - Introduction

  • What are Data Structures?

  • What is an algorithm?

  • Why are Data Structures and Algorithms important?

  • Types of Data Structures

  • Types of Algorithms

Section 2 - Recursion

  • What is Recursion?

  • Why do we need recursion?

  • How Recursion works?

  • Recursive vs Iterative Solutions

  • When to use/avoid Recursion?

  • How to write Recursion in 3 steps?

  • How to find Fibonacci numbers using Recursion?

Section 3 - Cracking Recursion Interview Questions

  • Question 1 - Sum of Digits

  • Question 2 - Power

  • Question 3 - Greatest Common Divisor

  • Question 4 - Decimal To Binary

Section 4 - Bonus CHALLENGING Recursion Problems (Exercises)

  • power

  • factorial

  • productofArray

  • recursiveRange

  • fib

  • reverse

  • isPalindrome

  • someRecursive

  • flatten

  • captalizeFirst

  • nestedEvenSum

  • capitalizeWords

  • stringifyNumbers

  • collectStrings

Section 5 - Big O Notation

  • Analogy and Time Complexity

  • Big O, Big Theta and Big Omega

  • Time complexity examples

  • Space Complexity

  • Drop the Constants and the non dominant terms

  • Add vs Multiply

  • How to measure the codes using Big O?

  • How to find time complexity for Recursive calls?

  • How to measure Recursive Algorithms that make multiple calls?

Section 6 - Top 10 Big O Interview Questions (Amazon, Facebook, Apple and Microsoft)

  • Product and Sum

  • Print Pairs

  • Print Unordered Pairs

  • Print Unordered Pairs 2 Arrays

  • Print Unordered Pairs 2 Arrays 100000 Units

  • Reverse

  • O(N)  Equivalents

  • Factorial Complexity

  • Fibonacci Complexity

  • Powers of 2

Section 7 - Arrays

  • What is an Array?

  • Types of Array

  • Arrays in Memory

  • Create an Array

  • Insertion Operation

  • Traversal Operation

  • Accessing an element of Array

  • Searching for an element in Array

  • Deleting an element from Array

  • Time and Space complexity of One Dimensional Array

  • One Dimensional Array Practice

  • Create Two Dimensional Array

  • Insertion - Two Dimensional Array

  • Accessing an element of Two Dimensional Array

  • Traversal - Two Dimensional Array

  • Searching for an element in Two Dimensional Array

  • Deletion - Two Dimensional Array

  • Time and Space complexity of Two Dimensional Array

  • When to use/avoid array


Section 8 - Cracking Array Interview Questions (Amazon, Facebook, Apple and Microsoft)

  • Question 1 - Missing Number

  • Question 2 - Pairs

  • Question 3 - Finding a number in an Array

  • Question 4 - Max product of two int

  • Question 5 - Is Unique

  • Question 6 - Permutation

  • Question 7 - Rotate Matrix

Section 9 - CHALLENGING Array Problems (Exercises)

  • Middle Function

  • 2D Lists

  • Best Score

  • Missing Number

  • Duplicate Number

  • Pairs


Section 10 - Linked List

  • What is a Linked List?

  • Linked List vs Arrays

  • Types of Linked List

  • Linked List in the Memory

  • Creation of Singly Linked List

  • Insertion in Singly Linked List in Memory

  • Insertion in Singly Linked List Algorithm

  • Insertion Method in Singly Linked List

  • Traversal of Singly Linked List

  • Search for a value in Single Linked List

  • Deletion of node from Singly Linked List

  • Deletion Method in Singly Linked List

  • Deletion of entire Singly Linked List

  • Time and Space Complexity of Singly Linked List

Section 11 - Circular Singly Linked List

  • Creation of Circular Singly Linked List

  • Insertion in Circular Singly Linked List

  • Insertion Algorithm in Circular Singly Linked List

  • Insertion method in Circular Singly Linked List

  • Traversal of Circular Singly Linked List

  • Searching a node in Circular Singly Linked List

  • Deletion of a node from Circular Singly Linked List

  • Deletion Algorithm in Circular Singly Linked List

  • Method in Circular Singly Linked List

  • Deletion of entire Circular Singly Linked List

  • Time and Space Complexity of Circular Singly Linked List

Section 12 - Doubly Linked List

  • Creation of Doubly Linked List

  • Insertion in Doubly Linked List

  • Insertion Algorithm in Doubly Linked List

  • Insertion Method in Doubly Linked List

  • Traversal of Doubly Linked List

  • Reverse Traversal of Doubly Linked List

  • Searching for a node in Doubly Linked List

  • Deletion of a node in Doubly Linked List

  • Deletion Algorithm in Doubly Linked List

  • Deletion Method in Doubly Linked List

  • Deletion of entire Doubly Linked List

  • Time and Space Complexity of Doubly Linked List

Section 13 - Circular Doubly Linked List

  • Creation of Circular Doubly Linked List

  • Insertion in Circular Doubly Linked List

  • Insertion Algorithm in Circular Doubly Linked List

  • Insertion Method in Circular Doubly Linked List

  • Traversal of Circular Doubly Linked List

  • Reverse Traversal of Circular Doubly Linked List

  • Search for a node in Circular Doubly Linked List

  • Delete a node from Circular Doubly Linked List

  • Deletion Algorithm in Circular Doubly Linked List

  • Deletion Method in Circular Doubly Linked List

  • Entire Circular Doubly Linked List

  • Time and Space Complexity of Circular Doubly Linked List

  • Time Complexity of Linked List vs Arrays

Section 14 - Cracking Linked List Interview Questions (Amazon, Facebook, Apple and Microsoft)

  • Linked List Class

  • Question 1 - Remove Dups

  • Question 2 - Return Kth to Last

  • Question 3 - Partition

  • Question 4 - Sum Linked Lists

  • Question 5 - Intersection

Section 15 - Stack

  • What is a Stack?

  • What and Why of Stack?

  • Stack Operations

  • Stack using Array vs Linked List

  • Stack Operations using Array (Create, isEmpty, isFull)

  • Stack Operations using Array (Push, Pop, Peek, Delete)

  • Time and Space Complexity of Stack using Array

  • Stack Operations using Linked List

  • Stack methods - Push , Pop, Peek, Delete and isEmpty using Linked List

  • Time and Space Complexity of Stack using Linked List

  • When to Use/Avoid Stack

  • Stack Quiz


Section 16 - Queue

  • What is a Queue?

  • Linear Queue Operations using Array

  • Create, isFull, isEmpty and enQueue methods using Linear Queue Array

  • Dequeue, Peek and Delete Methods using Linear Queue Array

  • Time and Space Complexity of Linear Queue using Array

  • Why Circular Queue?

  • Circular Queue Operations using Array

  • Create, Enqueue, isFull and isEmpty Methods in Circular Queue using Array

  • Dequeue, Peek and Delete Methods in Circular Queue using Array

  • Time and Space Complexity of Circular Queue using Array

  • Queue Operations using Linked List

  • Create, Enqueue and isEmpty Methods in Queue using Linked List

  • Dequeue, Peek and Delete Methods in Queue using Linked List

  • Time and Space Complexity of Queue using Linked List

  • Array vs Linked List Implementation

  • When to Use/Avoid Queue?

Section 17 - Cracking Stack and Queue Interview Questions (Amazon,Facebook, Apple, Microsoft)

  • Question 1 - Three in One

  • Question 2 - Stack Minimum

  • Question 3 - Stack of Plates

  • Question 4 - Queue via Stacks

  • Question 5 - Animal Shelter

Section 18 - Tree / Binary Tree

  • What is a Tree?

  • Why Tree?

  • Tree Terminology

  • How to create a basic tree in Java?

  • Binary Tree

  • Types of Binary Tree

  • Binary Tree Representation

  • Create Binary Tree (Linked List)

  • PreOrder Traversal Binary Tree (Linked List)

  • InOrder Traversal Binary Tree (Linked List)

  • PostOrder Traversal Binary Tree (Linked List)

  • LevelOrder Traversal Binary Tree (Linked List)

  • Searching for a node in Binary Tree (Linked List)

  • Inserting a node in Binary Tree (Linked List)

  • Delete a node from Binary Tree (Linked List)

  • Delete entire Binary Tree (Linked List)

  • Create Binary Tree (Array)

  • Insert a value Binary Tree (Array)

  • Search for a node in Binary Tree (Array)

  • PreOrder Traversal Binary Tree (Array)

  • InOrder Traversal Binary Tree (Array)

  • PostOrder Traversal Binary Tree (Array)

  • Level Order Traversal Binary Tree (Array)

  • Delete a node from Binary Tree (Array)

  • Entire Binary Tree (Array)

  • Linked List vs Python List Binary Tree

Section 19 - Binary Search Tree

  • What is a Binary Search Tree? Why do we need it?

  • Create a Binary Search Tree

  • Insert a node to BST

  • Traverse BST

  • Search in BST

  • Delete a node from BST

  • Delete entire BST

  • Time and Space complexity of BST

Section 20 - AVL Tree

  • What is an AVL Tree?

  • Why AVL Tree?

  • Common Operations on AVL Trees

  • Insert a node in AVL (Left Left Condition)

  • Insert a node in AVL (Left Right Condition)

  • Insert a node in AVL (Right Right Condition)

  • Insert a node in AVL (Right Left Condition)

  • Insert a node in AVL (all together)

  • Insert a node in AVL (method)

  • Delete a node from AVL (LL, LR, RR, RL)

  • Delete a node from AVL (all together)

  • Delete a node from AVL (method)

  • Delete entire AVL

  • Time and Space complexity of AVL Tree

Section 21 - Binary Heap

  • What is Binary Heap? Why do we need it?

  • Common operations (Creation, Peek, sizeofheap) on Binary Heap

  • Insert a node in Binary Heap

  • Extract a node from Binary Heap

  • Delete entire Binary Heap

  • Time and space complexity of Binary Heap

Section 22 - Trie

  • What is a Trie? Why do we need it?

  • Common Operations on Trie (Creation)

  • Insert a string in Trie

  • Search for a string in Trie

  • Delete a string from Trie

  • Practical use of Trie

Section 23 - Hashing

  • What is Hashing? Why do we need it?

  • Hashing Terminology

  • Hash Functions

  • Types of Collision Resolution Techniques

  • Hash Table is Full

  • Pros and Cons of Resolution Techniques

  • Practical Use of Hashing

  • Hashing vs Other Data structures

Section 24 - Sort Algorithms

  • What is Sorting?

  • Types of Sorting

  • Sorting Terminologies

  • Bubble Sort

  • Selection Sort

  • Insertion Sort

  • Bucket Sort

  • Merge Sort

  • Quick Sort

  • Heap Sort

  • Comparison of Sorting Algorithms

Section 25 - Searching Algorithms

  • Introduction to Searching Algorithms

  • Linear Search

  • Linear Search in Python

  • Binary Search

  • Binary Search in Python

  • Time Complexity of Binary Search


Section 26 - Graph Algorithms

  • What is a Graph? Why Graph?

  • Graph Terminology

  • Types of Graph

  • Graph Representation

  • Graph in Java using Adjacency Matrix

  • Graph in Java using Adjacency List


Section 27 - Graph Traversal

  • Breadth First Search Algorithm (BFS)

  • Breadth First Search Algorithm (BFS) in Java - Adjacency Matrix

  • Breadth First Search Algorithm (BFS) in Java - Adjacency List

  • Time Complexity of Breadth First Search (BFS) Algorithm

  • Depth First Search (DFS) Algorithm

  • Depth First Search (DFS) Algorithm in Java - Adjacency List

  • Depth First Search (DFS) Algorithm in Java - Adjacency Matrix

  • Time Complexity of Depth First Search (DFS) Algorithm

  • BFS Traversal vs DFS Traversal

Section 28 - Topological Sort

  • What is Topological Sort?

  • Topological Sort Algorithm

  • Topological Sort using Adjacency List

  • Topological Sort using Adjacency Matrix

  • Time and Space Complexity of Topological Sort


Section 29 - Single Source Shortest Path Problem

  • SWhat is Single Source Shortest Path Problem?

  • Breadth First Search (BFS) for Single Source Shortest Path Problem (SSSPP)

  • BFS for SSSPP in Java using Adjacency List

  • BFS for SSSPP in Java using Adjacency Matrix

  • Time and Space Complexity of BFS for SSSPP

  • Why does BFS not work with Weighted Graph?

  • Why does DFS not work for SSSP?

Section 30 - Dijkstra's Algorithm

  • Dijkstra's Algorithm for SSSPP

  • Dijkstra's Algorithm in Java - 1

  • Dijkstra's Algorithm in Java - 2

  • Dijkstra's Algorithm with Negative Cycle

Section 31 - Bellman Ford Algorithm

  • Bellman Ford Algorithm

  • Bellman Ford Algorithm with negative cycle

  • Why does Bellman Ford run V-1 times?

  • Bellman Ford in Python

  • BFS vs Dijkstra vs Bellman Ford

Section 32 - All Pairs Shortest Path Problem

  • All pairs shortest path problem

  • Dry run for All pair shortest path

Section 33 - Floyd Warshall

  • Floyd Warshall Algorithm

  • Why Floyd Warshall?

  • Floyd Warshall with negative cycle,

  • Floyd Warshall in Java,

  • BFS vs Dijkstra vs Bellman Ford vs Floyd Warshall,

Section 34 - Minimum Spanning Tree

  • Minimum Spanning Tree,

  • Disjoint Set,

  • Disjoint Set in Java,

Section 35 - Kruskal's and Prim's Algorithms

  • Kruskal Algorithm,

  • Kruskal Algorithm in Python,

  • Prim's Algorithm,

  • Prim's Algorithm in Python,

  • Prim's vs Kruskal

Section 36 - Cracking Graph and Tree Interview Questions (Amazon,Facebook, Apple, Microsoft)

Section 37 - Greedy Algorithms

  • What is Greedy Algorithm?

  • Well known Greedy Algorithms

  • Activity Selection Problem

  • Activity Selection Problem in Python

  • Coin Change Problem

  • Coin Change Problem in Python

  • Fractional Knapsack Problem

  • Fractional Knapsack Problem in Python

Section 38 - Divide and Conquer Algorithms

  • What is a Divide and Conquer Algorithm?

  • Common Divide and Conquer algorithms

  • How to solve Fibonacci series using Divide and Conquer approach?

  • Number Factor

  • Number Factor in Java

  • House Robber

  • House Robber Problem in Java

  • Convert one string to another

  • Convert One String to another in Java

  • Zero One Knapsack problem

  • Zero One Knapsack problem in Java

  • Longest Common Sequence Problem

  • Longest Common Subsequence in Java

  • Longest Palindromic Subsequence Problem

  • Longest Palindromic Subsequence in Java

  • Minimum cost to reach the Last cell problem

  • Minimum Cost to reach the Last Cell in 2D array using Java

  • Number of Ways to reach the Last Cell with given Cost

  • Number of Ways to reach the Last Cell with given Cost in Java

Section 39 - Dynamic Programming

  • What is Dynamic Programming? (Overlapping property)

  • Where does the name of DC come from?

  • Top Down with Memoization

  • Bottom Up with Tabulation

  • Top Down vs Bottom Up

  • Is Merge Sort Dynamic Programming?

  • Number Factor Problem using Dynamic Programming

  • Number Factor : Top Down and Bottom Up

  • House Robber Problem using Dynamic Programming

  • House Robber : Top Down and Bottom Up

  • Convert one string to another using Dynamic Programming

  • Convert String using Bottom Up

  • Zero One Knapsack using Dynamic Programming

  • Zero One Knapsack - Top Down

  • Zero One Knapsack - Bottom Up

Section 40 - CHALLENGING Dynamic Programming Problems

  • Longest repeated Subsequence Length problem

  • Longest Common Subsequence Length problem

  • Longest Common Subsequence  problem

  • Diff Utility

  • Shortest Common Subsequence  problem

  • Length of Longest Palindromic Subsequence

  • Subset Sum Problem

  • Egg Dropping Puzzle

  • Maximum Length Chain of Pairs

Section 41 - A Recipe for Problem Solving

  • Introduction

  • Step 1 - Understand the problem

  • Step 2 - Examples

  • Step 3 - Break it Down

  • Step 4 - Solve or Simplify

  • Step 5 - Look Back and Refactor

Section 41 - Wild West


Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Computer Science
Hiển thị tất cả khoá học Data Structures Algorithms
Hiển thị tất cả khoá học Java
Hiển thị tất cả khoá học Software Development
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊