Description
In this course, you will learn :
- Have a thorough understanding of various algorithm types in Python, as well as a simple method for approaching complexity analysis.
- Exposed to the most important algorithms that you will most likely encounter in an interview.
- You'll work your way through over 50 interactive coding challenges, each with detailed solutions.
- Ability to piece together the best solution for answering those difficult coding interview questions.
Syllabus :
1. Algorithmic Paradigms
- Brute Force
- Greedy Algorithms
- Divide and Conquer
- Dynamic Programming
2. Asymptotic Analysis
- Comparing Algorithms
- Example 1: Measuring Time Complexity
- Example 2: Measuring Time Complexity
- Introduction to Asymptotic Analysis and Big O
- Other Common Asymptotic Notations and Why Big O Trumps Them
- Useful Formulas
- Common Complexity Scenarios
3. Sorting & Searching
- Selection Sort, Bubble Sort, and Insertion Sort
- Merge Sort
- Quick Sort
- Overview of Sorting Algorithms
- Searching Algorithms
4. Graph Algorithms
- Introduction to Graph Algorithms and Implementation
5. Greedy Algorithms
- Greedy Approach: A Deep Dive
6. Dynamic Programming
- Calculating Fibonacci Numbers
- Introducing Dynamic Programming with Fibonacci Numbers
- Memoizing Fibonacci Numbers
- Tabulating Fibonacci Numbers
7. Divide and Conquer
- Introduction to Divide and Conquer With Binary Search
- Pascal's Triangle