# Recursion: the full course 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

Plus 11 solved and explained coding problems to practice:

• Sum of digits
• Count occurrences
• Reverse string
• Minimum cost path in matrix
• All possible phrases
• String subsequences
• Binary numbers with at most 2 zeros
• Word search
• Array permutations

## Course content

23 sections • 41 lectures • 4h 54m total length
• Introduction
• Multiple recursive calls
• Visualize call stack and recursion tree
• Time and space complexity analysis of recursive functions
• Recursion vs Iteration
• Optimize a recursive function with memoization and dynamic programming
• Divide-and-conquer and backtracking
• Recursive data structures
• Tail recursion
• Double recursion
• How to think recursively
• Coding problem #1: Sum of digits problem
• Coding problem #2: Count occurrences
• Coding problem #3: Has adjacent duplicates problem
• Coding problem #4: Reverse string
• Coding problem #5: Minimum cost path in matrix
• Coding problem #6: All possible phrases
• Coding problem #7: Keypad combinations
• Coding problem #8: String subsequences
• Coding problem #9: Binary numbers with at most 2 zeros
• Coding problem #10: Word search
• Coding problem #11: Array permutations
• Conclusion
Created by: Inside Code Your algorithms and data structures content provider
Last updated 12/2020
English
English

Hot & New
Rating: 5.0 out of 5
(3 ratings)
56 students
https://www.udemy.com/course/learn-recursion/