Process, optimization, techniques... all what you need to know about recursion is covered in this course
What you'll learn
- Recursion
- Recursive process
- Optimizing a recursive function (with memoization and dynamic programming)
- Algorithmic techniques based on recursion (backtracking and divide-and-conquer)
- Tail recursion
- Breaking down a problem into subproblems of the same type
Requirements
- Basic programming knowledge
Description
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 full course on recursion that covers all what you need to know about it, 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 subproblems of the same type, which is necessary to understand 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
- 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
- Programmers
- Computer science students
- Engineering students
- Competitive programmers
- Self-learning people