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

Data Structures & Algorithms in Java + 150 Leetcode Problems

Cấu trúc dữ liệu & Giải thuật trong Java + 150 Bài tập Leetcode

Cấu trúc dữ liệu & Giải thuật trong Java + 150 Bài tập Leetcode

Học DSA + Giải bài tập Leetcode cho phỏng vấn lập trình

4.6
(1,631 đánh giá)
9,543 học viên
Giảng viên
Pratik Singhal
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
79.000đ 349.000đ -77%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
42.0 giờ video
295 bài giảng
2 bài quiz
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ì

Top 150 Bài toán phỏng vấn lập trình trên Leetcode
Lý thuyết Cấu trúc dữ liệu & Giải thuật kèm Triển khai thực tế
Luyện tập Leetcode: Các bài toán Quy hoạch động, Thuật toán Tham lam trong Java
Luyện tập Leetcode: Các bài toán Đồ thị, Cây, Quay lui trong Java
Luyện tập Leetcode: Các bài toán Mảng, Cửa sổ trượt, Hai con trỏ, Vấn đề Ad hoc trong Java

Yêu cầu

Có kinh nghiệm lập trình cơ bản với vòng lặp for, mảng

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

Khóa học này dành cho bất kỳ ai đang luyện tập trên Leetcode để phỏng vấn lập trình

Nội dung khóa học

29 phần • 295 bài giảng
1 Bắt đầu với Leetcode như thế nào?
2 Làm thế nào để cải thiện kỹ năng giải quyết vấn đề?
3 Cách viết code nhanh trong phỏng vấn!
4 Làm thế nào để vượt qua phỏng vấn DSA?
1 Giới thiệu về Độ phức tạp Thời gian & Bộ nhớ
2 Big O Notation là gì?
3 Ví dụ 1: Tính toán Độ phức tạp Thời gian
4 Kiểm tra xem Big O Notation có được chấp nhận trong phỏng vấn không
5 Ví dụ 2: Tính toán Độ phức tạp Thời gian
6 Hiểu lầm về Độ phức tạp Thời gian
7 Tính toán Độ phức tạp Thời gian cho các trường hợp Đệ quy
8 Ví dụ 2: Độ phức tạp Thời gian Đệ quy
9 Minh họa trực tiếp Độ phức tạp Thời gian
10 Giới thiệu về Độ phức tạp Bộ nhớ
11 Tính toán Độ phức tạp Bộ nhớ
12 Ví dụ 1: Độ phức tạp Bộ nhớ Đệ quy
13 Ví dụ 2: Độ phức tạp Bộ nhớ Đệ quy
1 Mảng là gì và tại sao chúng lại nhanh đến vậy!
2 Nhược điểm của việc sử dụng Mảng
3 Mảng có thể thay đổi kích thước hoạt động như thế nào?
4 Các phương thức Mảng quan trọng trong Java - Phần 1
5 Các phương thức Mảng quan trọng trong Java - Phần 2
6 Các phương thức Mảng quan trọng trong Java - Phần 3
7 Bài tập 1 - Tổng lớn nhất của mảng con
8 Bài tập 2 - Thời điểm tốt nhất để mua và bán cổ phiếu
9 Bài tập 3 - Tích lớn nhất của mảng con
10 Bài tập 4 - Tích của mảng ngoại trừ chính nó
11 Bài tập 5 - Xoay mảng
12 Bài tập 6 - Số 1 liên tiếp tối đa
13 Bài tập 7 - Sudoku hợp lệ
14 Bài tập 8 - K điểm gần gốc tọa độ nhất
15 Bài tập 9 - Mã hóa và giải mã chuỗi
1 Tại sao sắp xếp lại quan trọng?
2 Giới thiệu về Sắp xếp
3 Lý thuyết Sắp xếp Nổi bọt
4 Triển khai Sắp xếp Nổi bọt
5 Lý thuyết Sắp xếp Chọn
6 Triển khai Sắp xếp Chọn
7 Lý thuyết Sắp xếp Chèn
8 Triển khai Sắp xếp Chèn
9 Sắp xếp Trộn Phần 1 - Cách trộn hai mảng đã sắp xếp
10 Sắp xếp Trộn Phần 2 - Triển khai trộn hai mảng đã sắp xếp
11 Sắp xếp Trộn Phần 3 - Lý thuyết
12 Triển khai Sắp xếp Trộn
13 Sắp xếp Nhanh Phần 1 - Thuật toán Phân vùng
14 Sắp xếp Nhanh Phần 2 - Hiểu cách hoạt động của sắp xếp nhanh
15 Sắp xếp Đếm Phần 1 - Lý thuyết
16 Sắp xếp Đếm - Triển khai
17 Làm thế nào để sắp xếp đếm trở nên ổn định?
18 Sắp xếp Cơ số - Lý thuyết
19 Sắp xếp Cơ số - Triển khai
20 Leetcode #283 - Di chuyển số 0 - Java
21 Leetcode #75 - Sắp xếp màu - Java
22 Leetcode #169 - Phần tử chiếm đa số - Java
1 Nhược điểm của Mảng
2 Danh sách liên kết là gì
3 Triển khai Danh sách liên kết
4 Duyệt qua Danh sách liên kết
5 Chèn vào Danh sách liên kết
6 Xóa từ đầu Danh sách liên kết
7 Danh sách liên kết đôi là gì
8 Lớp Danh sách liên kết trong Java
9 Tạo Danh sách liên kết
10 Sử dụng Bộ lặp để duyệt
11 Chứa
12 Duyệt theo thứ tự ngược
13 Các phương thức Thêm trong Danh sách liên kết
14 Các phương thức Xóa trong Danh sách liên kết
15 Bài tập 1 - Giao điểm của hai Danh sách liên kết
16 Bài tập 2 - Trộn hai Danh sách đã sắp xếp
17 Bài tập 3 - Chu kỳ Danh sách liên kết
18 Bài tập 4 - Đảo ngược Danh sách liên kết
19 Bài tập 5 - Danh sách liên kết Palindrome
20 Bài tập 6 - Chu kỳ Danh sách liên kết II
21 Bài tập 7 - Tìm giữa Danh sách liên kết
22 Bài tập 8 - Xóa nút thứ N từ cuối Danh sách
23 Bài tập 9 - Cộng hai số
24 Bài tập 10 - Sắp xếp lại Danh sách
1 Bảng băm là gì
2 Bảng băm hoạt động như thế nào?
3 Giải quyết xung đột Bảng băm
4 Các loại Bảng băm
5 Cách sử dụng Bảng băm
6 Bài tập 1 - Chứa phần tử trùng lặp
7 Bài tập 2 - Hai tổng
8 Bài tập 3 - Anagram hợp lệ
9 Bài tập 4 - Nhóm các Anagram
10 Bài tập 5 - Chuỗi liên tiếp dài nhất
11 Bài tập 6 - Ba tổng
12 Bài tập 7 - Số dương còn thiếu đầu tiên
1 Giới thiệu về Ngăn xếp
2 Sử dụng Ngăn xếp trong Java
3 Bài tập 1 - Dấu ngoặc hợp lệ
4 Bài tập 2 - Ngăn xếp tối thiểu
5 Bài tập 3 - Phần tử lớn hơn tiếp theo II
6 Bài tập 4 - Đánh giá ký pháp Ba Lan ngược
1 Giới thiệu về Hàng đợi
2 Hàng đợi được triển khai như thế nào
3 Sử dụng Hàng đợi trong Java
1 Phương pháp Cửa sổ trượt là gì? - Phần 1
2 Phương pháp Cửa sổ trượt là gì? - Phần 2
3 Làm thế nào để giải nhanh các bài toán Cửa sổ trượt?
4 Bài tập 1 - Chuỗi con dài nhất không lặp lại ký tự
5 Bài tập 2 - Thay thế ký tự lặp lại dài nhất
6 Bài tập 3 - Cửa sổ trượt tối đa - Java
1 Bài tập 1- Thùng chứa nhiều nước nhất - Java
2 Bài tập 2- Bẫy nước mưa - Java
3 Bài tập 3 - Hai tổng II - Mảng đầu vào đã sắp xếp - Java
4 Bài tập 4 - Palindrome hợp lệ - Java
1 Bài tập 1 - Đặt ma trận về 0
2 Bài tập 2 - Xoay ảnh
3 Bài tập 3 - Ma trận xoắn ốc
4 Bài tập 4 - Lũy thừa (X, N)
1 Bài tập 1 - Chèn khoảng
2 Bài tập 2 - Vị trí chèn tìm kiếm
3 Bài tập 3 - Trộn các khoảng
4 Bài tập 4 - Phòng họp
5 Bài tập 5 - Các khoảng không chồng lấn
1 Giới thiệu về Tìm kiếm nhị phân
2 Triển khai Tìm kiếm nhị phân
3 Độ phức tạp của Tìm kiếm nhị phân
1 Bài tập 1 - Tìm vị trí đầu tiên và cuối cùng của phần tử trong mảng đã sắp xếp
2 Bài tập 2 - Tìm giá trị nhỏ nhất trong mảng đã sắp xếp bị xoay
3 Bài tập 3 - Tìm kiếm trong mảng đã sắp xếp bị xoay
1 Bài tập 1 - Koko ăn chuối
2 Bài tập 2 - Lực từ giữa hai quả bóng
1 Quay lui là gì và cách triển khai?
2 Ví dụ 1 về Quay lui với triển khai chi tiết
3 Leetcode #78 - Tập con - Java
4 Leetcode #46 - Hoán vị - Java
5 Leetcode #17 - Tổ hợp chữ cái của số điện thoại
6 Leetcode #39 - Tổng tổ hợp - Java
7 Leetcode #40 - Tổng tổ hợp II
8 Leetcode #90 - Tập con II - Java
9 Leetcode #51 - N Hậu - Java
10 Leetcode #79 - Tìm kiếm từ
11 Leetcode #212 - Tìm kiếm từ II
1 Giới thiệu về Cây nhị phân
2 Các thuật ngữ liên quan đến Cây
3 Thuật toán Duyệt cây
4 Duyệt theo cấp độ
5 Triển khai Cây sử dụng Tham chiếu
6 Triển khai Cây sử dụng Mảng
1 Leetcode #100 - Cây giống nhau - Java
2 Leetcode #572 - Cây con của cây khác - Java
3 Leetcode #101 - Cây đối xứng - Java
4 Leetcode #104 - Độ sâu tối đa của cây nhị phân - Java
5 Triển khai Duyệt Tiền thứ tự trong Cây sử dụng Mảng
6 Leetcode #226 - Đảo ngược cây nhị phân - Java
7 Leetcode #543 - Đường kính của cây nhị phân - Java
8 Leetcode #94 - Duyệt Trung thứ tự cây nhị phân - Java
9 Leetcode #102 - Duyệt theo cấp độ cây nhị phân - Java
10 Leetcode #112 - Tổng đường đi - Java
11 Leetcode #113 - Tổng đường đi II - Java
12 Leetcode #993 - Anh em họ trong cây nhị phân - Java
13 Leetcode #1161 - Tổng cấp độ lớn nhất của cây nhị phân - Java
14 Leetcode #105 - Xây dựng cây nhị phân từ Duyệt Tiền thứ tự và Trung thứ tự - Java
15 Leetcode #110 - Cây nhị phân cân bằng - Java
16 Leetcode #199 - Góc nhìn bên phải cây nhị phân - Java
17 Leetcode #1448 - Đếm nút tốt trong cây nhị phân - Java
18 Leetcode #404 - Tổng lá bên trái - Java
19 Leetcode #124 - Tổng đường đi lớn nhất của cây nhị phân
20 Leetcode #208 - Triển khai Trie (Cây tiền tố)
21 Leetcode #211 - Thiết kế cấu trúc dữ liệu Thêm và Tìm kiếm từ
22 Leetcode #297 - Tuần tự hóa và giải tuần tự hóa cây nhị phân
1 Giới thiệu về Cây tìm kiếm nhị phân
2 BST cân bằng chiều cao
3 Chèn một nút mới vào Cây tìm kiếm nhị phân
4 Nút kế tiếp và trước đó trong thứ tự
5 Xóa một nút trong Cây tìm kiếm nhị phân
6 Leetcode #230 - Phần tử nhỏ thứ K trong BST - Java
7 Leetcode #98 - Kiểm tra tính hợp lệ của Cây tìm kiếm nhị phân - Java
8 Leetcode #235 - Tổ Tiên Chung Thấp Nhất Của Cây Tìm Kiếm Nhị Phân - Java
1 Giới Thiệu Về Heap
2 Cài Đặt Heap
3 Thao tác Chèn trong Heap
4 Cài Đặt Thao Tác Chèn Heap
5 Thao tác Xóa trong Heap
6 Heapify
7 Bài Tập 1 - Phần Tử Lớn Thứ K Trong Mảng
8 Bài Tập 2 - Tìm Trung Vị Từ Luồng Dữ Liệu
9 Bài Tập 3 - Phần Tử Lớn Thứ K Trong Luồng Dữ Liệu
10 Leetcode #1046 - Trọng Lượng Viên Đá Cuối Cùng - Java
11 Leetcode #23 - Hợp Nhất K Danh Sách Đã Sắp Xếp
12 Leetcode #253 - Phòng Họp II
13 Leetcode #347 - K Phần Tử Có Tần Suất Cao Nhất
1 Giới Thiệu Về Quy Hoạch Động
2 Bài Tập 1 - Leo Cầu Thang - Java
3 Bài Tập 2 - Trò Chơi Nhảy - Java
4 Bài Tập 3 - Đổi Tiền Xu
5 Bài Tập 4 - Tổng Mục Tiêu
6 Bài Tập 5 - Dãy Con Chung Dài Nhất
7 Bài Tập 6 - Kẻ Trộm Nhà
8 Bài Tập 7 - Dãy Con Tăng Dài Nhất
9 Bài Tập 8 - Chia Tập Con Bằng Nhau
10 Bài Tập 9 - Ma Trận 0-1
11 Bài Tập 10 - Thay Thế Số Nguyên
12 Bài Tập 11 - Cách Giải Mã
13 Bài Tập 12 - Kẻ Trộm Nhà II
14 Bài Tập 13 - Chi Phí Leo Cầu Thang Tối Thiểu
15 Bài Tập 14 - Chuỗi Con Đối Xứng Dài Nhất
16 Bài Tập 15 - Tách Từ
17 Bài Tập 16 - Đường Đi Duy Nhất
18 Bài Tập 17 - Chuỗi Con Đối Xứng
1 Giới Thiệu Về Toán Tử Bitwise
2 Các Toán Tử Bitwise Thông Dụng
3 Leetcode #136 - Số Đơn Lẻ - Java
4 Leetcode #338 - Đếm Bit - Java
5 Leetcode #287 - Tìm Số Trùng Lặp - Java
6 Leetcode #29 - Chia Hai Số Nguyên - Java
7 Leetcode #268 - Số Thiếu - Java
8 Leetcode #191 - Số Bit 1 - Java
9 Leetcode #371 - Tổng Hai Số Nguyên - Java
10 Leetcode #7 - Đảo Ngược Số Nguyên - Java
1 Giới Thiệu Về Cấu Trúc Dữ Liệu Disjoint Set
2 Hiểu Về Cấu Trúc Dữ Liệu Disjoint Set
3 Cài Đặt Cấu Trúc Dữ Liệu Disjoint Set Phần 1
4 Tối Ưu Hóa Union By Rank
5 Cài Đặt Union By Rank
6 Tối Ưu Hóa Nén Đường Đi (Path Compression)
7 Cài Đặt Tối Ưu Hóa Nén Đường Đi
1 Đồ Thị Là Gì
2 Đồ Thị Có Hướng vs Không Hướng
3 Đồ Thị Có Trọng Số vs Không Trọng Số
4 Các Thuật Ngữ Đồ Thị Phần 1
5 Các Loại Đồ Thị Phần 1
6 Các Loại Đồ Thị Phần 2
7 Cài Đặt Đồ Thị Phần 1
8 Cài Đặt Đồ Thị Phần 2
9 Cài Đặt Đồ Thị Phần 3
10 Minh Họa Ma Trận Kề Của Đồ Thị
11 Minh Họa Danh Sách Kề Của Đồ Thị
12 Giới Thiệu Về Duyệt Đồ Thị
13 Cách Hoạt Động Của BFS
14 Cài Đặt BFS
15 Lời Giải Thuộc Tính "Cam Thối"
16 Thuộc Tính 1 Của BFS
17 BFS Trên Đồ Thị Nhị Phân Có Trọng Số
18 Giới Thiệu Về DFS
19 Cài Đặt DFS Lặp (Iterative)
20 Cài Đặt DFS Đệ Quy (Recursive)
21 Các Thuộc Tính Quan Trọng Của DFS
22 Cài Đặt DFS Đệ Quy (21)
23 Phát Hiện Chu Trình Phần 1
24 Phát Hiện Chu Trình Phần 2
25 Phát Hiện Chu Trình Phần 3
26 Cài Đặt Phát Hiện Chu Trình
27 Sắp Xếp Tô-pô Là Gì
28 Ví Dụ Sắp Xếp Tô-pô 1
29 Thuật Toán Đường Đi Ngắn Nhất Từ Một Nguồn
30 Thuật Toán Dijkstra
31 Cài Đặt Thuật Toán Dijkstra
32 Giới Thiệu Về Thuật Toán Bellman Ford
33 Cách Hoạt Động Của Thuật Toán Bellman Ford
34 Cài Đặt Thuật Toán Bellman Ford
35 Giới Thiệu Về Cây Khung Nhỏ Nhất
36 Thuật Toán Prim
37 Cài Đặt Thuật Toán Prim
38 Bài Tập 1 - Lịch Trình Khóa Học
39 Bài Tập 2 - Số Đảo
40 Bài Tập 3 - Tìm Thẩm Phán Thị Trấn
41 Bài Tập 4 - Các Vùng Bị Bao Vây
42 Bài Tập 5 - Số Vùng Đất Riêng Biệt
43 Bài Tập 6 - Tô Màu Lan Truyền (Flood Fill)
44 Bài Tập 7 - Thời Gian Trễ Mạng
45 Bài Tập 8 - Cam Thối
46 Bài Tập 9 - Đồ Thị Hợp Lệ Là Cây
47 Bài Tập 10 - Số Thành Phần Liên Thông Trong Đồ Thị Vô Hướng
48 Bài Tập 11 - Nước Thái Bình Dương - Đại Tây Dương
49 Bài Tập 12 - Từ Điển Ngoài Hành Tinh
50 Bài Tập 13 - Sao Chép Đồ Thị
1 Giới Thiệu Về Thuật Toán Tham Lam
2 Bài Tập 1 - Thêm Tối Thiểu Để Dấu Ngoặc Hợp Lệ
3 Bài Tập 2 - Thời Điểm Tốt Nhất Để Mua Và Bán Cổ Phiếu II
4 Bài Tập 3 - Kẹo
5 Bài Tập 4 - Tổng Mảng Con Liên Tục
1 Bài Tập 1 - Trò Chơi Nim
1 Giới Thiệu Về Khớp Mẫu
2 Khớp Mẫu Vét Cạn (Brute Force)
3 Giới Thiệu Về Thuật Toán KMP
4 Thuật Toán KMP Phiên Bản 1 - Không Gian Phụ
5 Tiền Tố Hậu Tố Dài Nhất - Cách Tiếp Cận Vét Cạn
6 Cài Đặt Tiền Tố Hậu Tố Dài Nhất - Cách Tiếp Cận Vét Cạn
7 Tiền Tố Hậu Tố Dài Nhất - Cách Tiếp Cận Tối Ưu
8 Cài Đặt Tiền Tố Hậu Tố Dài Nhất - Cách Tiếp Cận Tối Ưu
9 Thuật Toán KMP - Cách Tiếp Cận Tối Ưu Cuối Cùng
10 Cài Đặt Thuật Toán KMP - Cách Tiếp Cận Tối Ưu Cuối Cùng
1 Bài Tập 1 - Chuỗi Đối Xứng Dài Nhất
1 Giới Thiệu Bài Toán Truy Vấn Tổng Đoạn
2 Giới Thiệu Về Cây Phân Đoạn - Xây Dựng Cây Phân Đoạn
3 Trả Lời Truy Vấn Sử Dụng Cây Phân Đoạn
4 Cập Nhật Giá Trị Trong Cây Phân Đoạn
5 Cài Đặt Hàm Xây Dựng Cây Phân Đoạn
6 Cài Đặt Hàm Truy Vấn Cây Phân Đoạn
7 Cài Đặt Hàm Cập Nhật Cây Phân Đoạn

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

Picture this: You're sitting in the hot seat of a coding interview, faced with a challenging DSA problem. How do you tackle it with confidence and perfection? That's where my course comes in.

 

In this course, I am taking you straight to the heart of the action – the top 150 Leetcode problems. Why these specific ones? Because they're the ones tech companies love to throw your way. By mastering these, you'll be ready to ace any coding interview that comes your way.

 

If you’re wondering why Leetcode?

 

Leetcode is the most popular platform that offers a vast array of coding challenges, frequently used by tech companies in their hiring processes.

 

Here's why this course is will help you:

 

We're not simply tossing problems your way and crossing our fingers. Nope, not here!

 

  • We will together dive deep into each problem for invaluable insights into underlying concepts and problem-solving techniques, helping you to truly understand and conquer every challenge.

 

  • You’ll learn systematic approaches to problem-solving. We’ll help you break them into manageable tasks and craft efficient algorithms, so you can confidently tackle any challenge that comes your way.

 

  • One standout feature of this course is the live code implementation. You'll see each problem solved in real-time, giving you a firsthand look at the coding process.

 

  • Enhance your coding abilities through practical, hands-on learning, ensuring you're well-prepared for real-world scenarios.

 

  • Discover efficient coding practices, optimization techniques, and common pitfalls to avoid, equipping you with the skills to write clean, efficient code.

 

  • Follow along step-by-step as we dissect each problem in detail, guiding you through the thought process and live code implementation.

 

  • You get to access code sample files accompanying the video lectures, serving as valuable references and guides to support your learning journey and help you implement solutions effectively.

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 Algorithms
Hiển thị tất cả khoá học Computer Science
Hiển thị tất cả khoá học Java
Hiển thị tất cả khoá học Programming
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊