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

Recursion, Backtracking and Dynamic Programming in Java

Đệ quy, Backtracking và Lập trình Động trong Java

Đệ quy, Backtracking và Lập trình Động trong Java

Lập trình Thi đấu với Câu hỏi Phỏng vấn Thường gặp (Thuật toán Đệ quy, Backtracking và Chia để Trị)

4.4
(1,627 đánh giá)
18,849 học viên
Giảng viên
Holczer Balazs
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
15.0 giờ video
161 bài giảng
31 bài quiz
17 bài coding
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 30/05/2026

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

Hiểu các phương pháp tiếp cận đệ quy
Hiểu backtracking
Hiểu lập trình động
Hiểu các phương pháp chia để trị
Triển khai từ đầu hơn 15 bài toán thuật toán
Nâng cao kỹ năng giải quyết vấn đề và trở thành lập trình viên giỏi hơn

Yêu cầu

Java cơ bản

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

Khóa học này dành cho người mới chưa quen với các bài toán thuật toán hoặc sinh viên cần ôn tập
Bất kỳ ai đang chuẩn bị phỏng vấn lập trình hoặc muốn cải thiện kỹ năng giải quyết vấn đề

Nội dung khóa học

15 phần • 141 bài giảng
1 Giới thiệu
1 Bộ nhớ Stack và Heap là gì?
2 Mô phỏng bộ nhớ stack và heap
3 Đệ quy (lời gọi hàm đệ quy) là gì?
4 Cộng số: lặp so với đệ quy
5 Đệ quy và bộ nhớ stack (tràn stack)
6 Tối ưu hóa đệ quy trong Java
7 Triển khai đệ quy đầu và đệ quy đuôi
8 Hàm giai thừa - đệ quy đầu
9 Bài toán giai thừa - hình dung stack
10 Hàm giai thừa - đệ quy đuôi
11 Số Fibonacci - đệ quy đầu
12 Số Fibonacci - hình dung bộ nhớ stack
13 Giải pháp - Số Fibonacci với đệ quy đuôi
14 Giới thiệu bài toán Tháp Hà Nội
15 Triển khai bài toán Tháp Hà Nội
16 Tháp Hà Nội - hình dung stack
17 Giải pháp - giải đệ quy bằng vòng lặp
18 Giải pháp đảo ngược chuỗi
19 Thuật toán Euclid là gì?
20 Triển khai thuật toán Euclid
21 Thuật toán Euclid với vòng lặp
22 Xem lại vòng lặp và đệ quy
1 Giải pháp bài toán lũy thừa của 2
2 Giải pháp đảo ngược mảng tại chỗ
3 Giải pháp kiểm tra chuỗi đối xứng
4 Giải pháp bài toán ba lô bằng đệ quy
5 Giải pháp bài toán cầu thang
6 Giải pháp đảo ngược số nguyên
1 Tìm kiếm tuyến tính là gì?
2 Triển khai tìm kiếm tuyến tính
3 Giải pháp - tìm kiếm tuyến tính bằng đệ quy
4 Tìm kiếm nhị phân (logarithm) là gì?
5 Triển khai tìm kiếm nhị phân
1 Giới thiệu thuật toán chọn lọc
2 Giới thiệu Quickselect - thuật toán Hoare
3 Hình dung Quickselect
4 Triển khai Quickselect
5 Giải pháp - sắp xếp với chọn lọc
6 Vấn đề với pivot là gì?
7 Chọn lọc nâng cao - thuật toán median of medians
8 Kết hợp thuật toán - thuật toán introselect
9 Chọn lọc trực tuyến - bài toán thư ký
1 Biểu diễn nhị phân của số
2 Toán tử logic
3 Toán tử dịch bit
4 Tìm độ dài bit của số nguyên
5 Kiểm tra số chẵn và lẻ
6 Bài toán nông dân Nga
7 Giải pháp nhân nông dân Nga bằng đệ quy
1 Giới thiệu backtracking
2 Tìm kiếm vét cạn và backtracking
3 Giới thiệu bài toán N quân hậu
4 Cây tìm kiếm là gì?
5 Triển khai bài toán N quân hậu I
6 Triển khai bài toán N quân hậu II
7 Bài toán N quân hậu và hình dung bộ nhớ stack
8 Làm thế nào để kiếm 1 triệu đô với bài toán N quân hậu?
9 Giới thiệu đường đi (và chu trình) Hamilton
10 Minh họa chu trình Hamilton
11 Triển khai chu trình Hamilton I
12 Triển khai chu trình Hamilton II
13 Giới thiệu bài toán tô màu
14 Hình dung bài toán tô màu
15 Triển khai bài toán tô màu I
16 Triển khai bài toán tô màu II
17 Giới thiệu hành trình của mã
18 Triển khai hành trình của mã I
19 Triển khai hành trình của mã II
20 Giới thiệu bài toán mê cung
21 Triển khai bài toán mê cung I
22 Triển khai bài toán mê cung II
23 Hình dung bộ nhớ stack bài toán mê cung
24 Giới thiệu Sudoku
25 Triển khai Sudoku I
26 Triển khai Sudoku II
27 Triển khai Sudoku III
28 Vấn đề với bài toán NP-đầy đủ là gì?
1 Giải pháp bài toán tổ hợp tổng
2 Giải pháp bài toán hoán vị
1 Giới thiệu lập trình động
2 Giới thiệu số Fibonacci
3 Triển khai số Fibonacci
4 Giới thiệu bài toán ba lô
5 Ví dụ bài toán ba lô
6 Triển khai bài toán ba lô
7 Bài toán ba lô với đệ quy (cây đệ quy)
8 Bài tập - triển khai đệ quy
9 Giải pháp - triển khai đệ quy
10 Giới thiệu bài toán cắt thanh
11 Ví dụ bài toán cắt thanh
12 Triển khai bài toán cắt thanh
13 Giới thiệu bài toán tổng tập con
14 Ví dụ bài toán tổng tập con
15 Triển khai bài toán tổng tập con
16 Bài toán mảng con tổng lớn nhất (thuật toán Kadane)
17 Giới thiệu bài toán dãy con chung dài nhất (LCS)
18 Triển khai dãy con chung dài nhất (LCS)
19 Dãy con chung dài nhất với đệ quy (cây đệ quy)
1 Giới thiệu bài toán đóng gói thùng
2 Triển khai bài toán đóng gói thùng
3 Bài toán đóng gói thùng - bài viết hữu ích
1 Phương pháp chia để trị là gì?
2 Xem lại tìm kiếm nhị phân
3 Lý thuyết sắp xếp trộn
4 Triển khai sắp xếp trộn
5 Sắp xếp trộn và hình dung bộ nhớ stack
6 Bài tập - sắp xếp giảm dần
7 Giải pháp - sắp xếp giảm dần
8 Giới thiệu bài toán cặp điểm gần nhất I
9 Giới thiệu bài toán cặp điểm gần nhất II
10 Triển khai bài toán cặp điểm gần nhất
11 Bài toán cặp điểm gần nhất - bài viết hữu ích
1 Giải pháp bài toán đảo chữ
2 Tổng quan bài toán hai quả trứng
3 Giải pháp bài toán hai quả trứng I
4 Giải pháp bài toán hai quả trứng II
5 Tổng quan bài toán phần tử trùng trong mảng
6 Giải pháp bài toán phần tử trùng trong mảng
7 Tổng quan bài toán mảng con tổng lớn nhất
8 Giải pháp bài toán mảng con tổng lớn nhất
9 Tổng quan bài toán cờ Hà Lan
10 Lý thuyết bài toán cờ Hà Lan
11 Giải pháp bài toán cờ Hà Lan
12 Tổng quan bài toán hứng nước mưa
13 Lý thuyết bài toán hứng nước mưa
14 Giải pháp bài toán hứng nước mưa
1 Bước tiếp theo
1 Cách đo thời gian chạy của thuật toán?
2 Minh họa lý thuyết độ phức tạp
3 Ký hiệu độ phức tạp - big O
4 Ký hiệu độ phức tạp - big Ω (omega)
5 Ký hiệu độ phức tạp - big θ (theta)
6 Thời gian chạy thuật toán
7 Lớp độ phức tạp
8 Phân tích thuật toán - vòng lặp
9 Nghiên cứu trường hợp - O(1)
10 Nghiên cứu trường hợp - O(logN)
11 Nghiên cứu trường hợp - O(N)
12 Nghiên cứu trường hợp - O(N*N)
1 Tài liệu khóa học

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

This course is about the fundamental concepts of algorithmic problems focusing on recursion, backtracking, dynamic programming and divide and conquer approaches. As far as I am concerned, these techniques are very important nowadays, algorithms can be used (and have several applications) in several fields from software engineering to investment banking or R&D.

Section 1 - RECURSION

  • what are recursion and recursive methods

  • stack memory and heap memory overview

  • what is stack overflow?

  • Fibonacci numbers

  • factorial function

  • tower of Hanoi problem

Section 2 - SEARCH ALGORITHMS

  • linear search approach

  • binary search algorithm

Section 3 - SELECTION ALGORITHMS

  • what are selection algorithms?

  • how to find the k-th order statistics in O(N) linear running time?

  • quickselect algorithm

  • median of medians algorithm

  • the secretary problem

Section 4 - BIT MANIPULATION PROBLEMS

  • binary numbers

  • logical operators and shift operators

  • checking even and odd numbers

  • bit length problem

  • Russian peasant multiplication

Section 5 - BACKTRACKING

  • what is backtracking?

  • n-queens problem

  • Hamiltonian cycle problem

  • coloring problem

  • knight's tour problem

  • Sudoku game

Section 6 - DYNAMIC PROGRAMMING

  • what is dynamic programming?

  • knapsack problem

  • rod cutting problem

  • subset sum problem

  • Kadan's algorithm (maximum subarray)

  • longest common subsequence (LCS) problem

Section 7 - OPTIMAL PACKING 

  • what is optimal packing?

  • bin packing problem

Section 8 - DIVIDE AND CONQUER APPROACHES

  • what is the divide and conquer approach?

  • dynamic programming and divide and conquer method

  • how to achieve sorting in O(NlogN) with merge sort?

  • the closest pair of points problem

Section 9 - COMMON INTERVIEW QUESTIONS

  • top interview questions (Google, Facebook and Amazon)

  • anagram problem

  • palindrome problem

  • trapping rain water problem

  • egg dropping problem

  • dutch national flag problem

In each section we will talk about the theoretical background for all of these algorithms then we are going to implement these problems together from scratch in Java.

Finally, YOU CAN LEARN ABOUT THE MOST COMMON INTERVIEW QUESTIONS (Google, Microsoft, Amazon etc.)

Thanks for joining the course, let's get started!

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