
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
What is recursion?
How to always win the tower of Hanoi game with recursion
Examples of recursion
How is a recursive function made?
Base cases and recursive cases
How to write a recursive function?
What happens when a recursive function gets executed?
Call stack
What are base cases and recursive cases?
How to identify base cases and recursive cases?
Difference between a recursive function with one recursive call and with multiple recursive calls
Why do we need the recursion tree?
How to draw the recursion tree?
"ways to climb stairs" example
How to add some code to be able to visualize the call stack
Example on "merge sort"
How to add some code to be able to visualize the recursion tree
Example on "ways to climb stairs"
Introduction to time complexity analysis of recursive functions
How to analyze the time complexity of a recursive function by using the recursion tree
How to analyze the time complexity of a recursive function by using the recurrence relation (substitution method)
How to analyze the time complexity of a recursive function by using the Master theorem method
How to analyze the space complexity of a recursive function
The difference between iteration and recursion
When to choose iteration?
When to choose recursion?
How to transform a recursive function into an iterative one?
How to transform an iterative function into a recursive one?
What is memoization?
How does it work?
How to implement memoization?
How to optimize "ways to climb stairs" solution with memoization?
Process demonstration
Solution code
What is dynamic programming?
How does it work?
"Fibonacci nth term" example
How to optimize "ways to climb stairs" solution with dynamic programming?
Process demonstration
Solution code
What is divide-and-conquer?
"Merge sort" example
"Karatsuba algorithm" example
Decrease-and-conquer
What is backtracking?
"Combinations with valid weight" example
"N-queens" problem description
Solution explanation
Process demonstration on an example
Solution code
What is a recursive data type?
What is a linked list?
Traversal and searching example
What is a tree?
Recursive manipulations examples
What is a graph?
DFS traversal
What is tail recursion?
The benefit of using tail recursion
How to transform a non-tail-recursive function into a tail-recursive one
"Factorial" example
"Replace in array" example
"Sum to n" example
"a power b" example
"get minimum" example
"binary tree inorder traversal" example
"Fibonacci nth term" example
What is double recursion?
"Ackermann function" example
WARNING: The instructor is not currently available to answer questions regarding this course
Even if the concept of recursion is simple, a lot of people struggle with it (not understanding the recursive process, not being able to figure out the base cases and recursive cases...), this is why I wanted to create a course on recursion that explains it and illustrates it in detail, it also contains 11 solved and explained coding problems to practice.
And knowing recursion will also give you a new way of thinking, which is dividing the problem into multiple instances of the same problem, which will help you understanding techniques like dynamic programming, backtracking...
See you in the first lecture!
The course covers:
What is recursion
Code and execution
Base cases and recursive cases
Multiple recursive calls process
Call stack
Recursion tree
How to visualize the process
Recursive functions complexity analysis (time and space comp)
Recursion vs Iteration
How to optimize a recursive function (memoization and dynamic programming)
Divide-and-conquer
Backtracking
Recursive data structures
Tail recursion
Double recursion
How to think recursively
Plus 11 solved and explained coding problems to practice:
Sum of digits
Count occurrences
Has adjacent duplicates
Reverse string
Minimum cost path in matrix
All possible phrases
Keypad combinations
String subsequences
Binary numbers with at most 2 zeros
Word search
Array permutations
Why you should take this course:
Detailed explanation of how the recursive process works
Animated examples
Good audio/video quality
Real English captions
Contains coding problems to practice
Ability to ask questions if you don't understand something