Recursion, Backtracking and Dynamic Programming in Java

Algorithmic Problems in Java with Common Interview Questions (Recursion, Backtracking and Divide and Conquer Algorithms)
What you’ll learn
- Implement 15+ algorithmic problems from scratch
- Improve your problem solving skills and become a stronger developer
Requirements
- Basic Java
Description
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 – BACKTRACKING
- what is backtracking?
- n-queens problem
- Hamiltonian cycle problem
- coloring problem
- knight’s tour problem
- Sudoku game
Section 5 – DYNAMIC PROGRAMMING
- what is dynamic programming?
- knapsack problem
- rod cutting problem
Who this course is for:
- This course is meant for newbies who are not familiar with algorithmic problems in the main or students looking for some refresher
- Anyone preparing for programming interviews or interested in improving their problem solving skills