
This file contains all the codes used in this course translated in Java.
Explore recursion and backtracking through easy problems, from summing numbers to n, checking symmetry with two pointers, computing factorials, and exploring the three plus one problem.
The Flood-Fill problem is discussed in this video
Explore how divide and conquer underpins merge sort, partitioning arrays recursively and merging sorted halves for an efficient stable sort.
Explore an exhaustive grid search using recursion with memoization to count paths from the top-left to bottom-right, avoiding -1 blocked cells by moving right or down.
Explore the gold collector problem, using recursion with two choices: skip or collect, to maximize gold, then apply memoization and bottom-up tabulation to optimize the dynamic program solution.
Explore generating all permutations of a set of distinct elements via backtracking, using a candidate pool to build sequences and filtering to avoid duplicates.
The lecture revises the maze problem by counting all paths from any start to food through recursive backtracking, using four directional moves and negative barrier cells.
If you have trouble understanding Recursion and Backtracking, which is a recursion based technique, then this course is for you, since it is a course solely dedicated to Recursion and All types of Algorithms related to it.
In this course the Basics of Recursion will be learned. The basic Algorithm Design techniques like Divide and Conquer, Dynamic Programming and Backtracking(Exhaustive Search) will be discussed and many problems related to them will be solved.
Many different type of problems will be solved, from the simplest, finding the sum of numbers, to more difficult ones like Combinations, Permutations, Memoizations and the famous Flood Fill and N-queen Problem.