Chia Sẻ Khóa Học Recursion, Backtracking Và Dynamic Programming Trong Java [Khóa 6405 A]
Lập trình thi đấu (Competitive Programming) với các câu hỏi phỏng vấn phổ biến (Đệ quy, thuật toán quay lui và thuật toán chia để trị).
Những gì bạn sẽ học được:
- ✓ Tìm hiểu các phương pháp đệ quy.
- ✓ Tìm hiểu về Quay lui (Backtracking).
- ✓ Tìm hiểu về Dynamic programming.
- ✓ Tìm hiểu các phương pháp chia để trị.
- ✓ Triển khai hơn 15 bài toán thuật toán từ đầu.
- ✓ Cải thiện kỹ năng giải quyết vấn đề của bạn và trở thành một nhà phát triển mạnh mẽ hơn.
Khóa học này nói về các khái niệm nền tảng của các bài toán thuật toán tập trung vào đệ quy, quay lui, dynamic programming và các phương pháp chia để trị . Theo tôi, các kỹ thuật này rất quan trọng hiện nay, các thuật toán có thể được sử dụng (và có nhiều ứng dụng) trong nhiều lĩnh vực từ kỹ thuật phần mềm đến ngân hàng đầu tư hoặc R&D.
PHẦN 1 - ĐỆ QUY (RECURSION):
- ✓ Đệ quy là gì và phương pháp đệ quy.
- ✓ Tổng quan về stack memory và heap memory.
- ✓ Stack Overflow là gì?
- ✓ Dãy số Fibonacci.
- ✓ Factorial function.
- ✓ Bài toán tháp Hanoi.
PHẦN 2 - CÁC THUẬT TOÁN TÌM KIẾM (SEARCH):
- ✓ Phương pháp Linear Search (Tìm kiếm tuyến tính).
- ✓ Thuật toán Binary Serach (Tìm kiếm nhị phân).
PHẦN 3 - CÁC THUẬT TOÁN LỰA CHỌN (SELECTION):
- ✓ Thuật toán lựa chọn là gì?
- ✓ Làm thế nào để tìm k-th order statistics trong O(N) linear running time?
- ✓ Thuật toán Quickselect.
- ✓ Thuật toán median of medians.
- ✓ Secretary problem.
PHẦN 4 - BÀI TOÁN THAO TÁC BIT (BIT MANIPULATION):
- ✓ Binary numbers.
- ✓ Logical operators và Shift operators.
- ✓ Kiểm tra số chẵn và số lẻ.
- ✓ Bit length problem.
- ✓ Russian peasant multiplication.
PHẦN 5 - QUAY LUI (BACKTRACKING):
- ✓ Quay lui là gì?
- ✓ N-Queens problem.
- ✓ Hamiltonian cycle problem.
- ✓ Coloring problem.
- ✓ Knight's tour problem.
- ✓ Sudoku game.
PHẦN 6 - DYNAMIC PROGRAMMING:
- ✓ Dynamic programming là gì?
- ✓ Knapsack problem.
- ✓ Rod cutting problem.
- ✓ Subset sum problem.
- ✓ Thuật toán Kadan (maximum subarray).
- ✓ Longest Common Subsequence (LCS) problem.
PHẦN 7 - OPTIMAL PACKING:
- ✓ Optimal packing là gì?
- ✓ Bin packing problem.
PHẦN 8 - PHƯƠNG PHÁP CHI ĐỂ TRỊ (DIVIDE AND CONQUER):
- ✓ Phương pháp chia để trị là gì?
- ✓ Dynamic programming và Divide and Conquer method.
- ✓ Làm thế nào để đạt được sorting trong O(NlogN) với merge sort?
- ✓ Closest pair of points problem.
PHẦN 9 - CÁC CÂU HỎI PHỎNG VẤN THƯỜNG GẶP:
- ✓ Những câu hỏi phỏng vấn hàng đầu (Google, Facebook và Amazon).
- ✓ Anagram problem.
- ✓ Palindrome problem.
- ✓ Trapping rain water problem.
- ✓ Egg dropping problem.
- ✓ Dutch national flag problem.
Trong mỗi phần, chúng ta sẽ nói về bối cảnh lý thuyết của tất cả các thuật toán này, sau đó chúng ta sẽ cùng nhau triển khai các bài toán này từ đầu trong Java.
Cuối cùng, BẠN CÓ THỂ TÌM HIỂU VỀ CÁC CÂU HỎI PHỎNG VẤN PHỔ BIẾN NHẤT (Google, Microsoft, Amazon, v.v.).
Cảm ơn bạn đã tham gia khóa học, chúng ta hãy bắt đầu nhé!
Khóa học này dành cho ai:
- ✓ Khóa học này dành cho người mới bắt đầu, những người không quen thuộc với các bài toán thuật toán nói chung hoặc sinh viên đang tìm kiếm một số kiến thức bổ sung.
- ✓ Bất kỳ ai đang chuẩn bị cho các cuộc phỏng vấn lập trình hoặc quan tâm đến việc cải thiện kỹ năng giải quyết vấn đề của mình.
NHẬN GET EBOOK TRÊN AMAZON THEO YÊU CẦU