Recursion, Backtracking and Dynamic Programming in Java

0

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 recursionbacktracking, 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

Recursion, Backtracking and Dynamic Programming in Java Download Link