Mini Map
Search
⌘ K
AI Features
Log In
Algorithms for Coding Interviews in Python
1.
Introduction
Who This Course Is For
Learning Outcomes
2.
Algorithmic Paradigms
Brute Force
Greedy Algorithms
Divide and Conquer
Dynamic Programming
3.
Asymptotic Analysis
Comparing Algorithms
Example: Measuring Time Complexity - Single loop
Example: Measuring Time Complexity - Nested Loop
Introduction to Asymptotic Analysis and Big O
Other Common Asymptotic Notations and Why Big O Trumps Them
Useful Formulas
Common Complexity Scenarios
Challenge: Big O of Nested Loop With Addition
Solution: Big O of Nested Loop With Addition
Challenge: Big O of Nested Loop With Subtraction
Solution: Big O of Nested Loop With Subtraction
Challenge: Big O of Nested Loop With Multiplication
Solution: Big O of Nested Loop With Multiplication
Challenge: Nested Loop With Multiplication (Basic)
Solution: Nested Loop With Multiplication (Basic)
Challenge: Nested Loop With Multiplication (Intermediate)
Solution: Nested Loop With Multiplication (Intermediate)
Challenge: Nested Loop With Multiplication (Advanced)
Solution: Nested Loop With Multiplication (Advanced)
Challenge: Nested Loop With Multiplication (Pro)
Solution: Nested Loop With Multiplication (Pro)
Complexity Quiz: Test Your Understanding of Complexity
4.
Sorting & Searching
Selection Sort, Bubble Sort, and Insertion Sort
Merge Sort
Quick Sort
Overview of Sorting Algorithms
Searching Algorithms
Challenge: Find Two Numbers That Add Up to "n"
Solution: Find Two Numbers That Add Up to "n"
Challenge: Search in a Rotated List
Solution: Search in a Rotated List
Challenge: Group Anagrams
Solution: Group Anagrams
Challenge: Arrange a Binary List
Solution: Arrange a Binary List
Challenge: Find the Maximum Product of Two Integers in a List
Solution: Find the Maximum Product of Two Integers in a List
Challenge: Find Duplicates in a List With No Repetition
Solution: Find Duplicates in a List With No Repetition
Challenge: Search in a 2D List
Solution: Search in a 2D List
Challenge: Search Position
Solution: Search Position
Challenge: Dutch National Flag Problem
Solution: Dutch National Flag Problem
Quiz on Sorting & Searching
5.
Graph Algorithms
Introduction to Graph Algorithms and Implementation
Challenge: Implement Breadth-First Graph Traversal
Solution: Breadth-First Graph Traversal
Challenge: Implement Depth-First Graph Traversal
Solution: Depth-First Graph Traversal
Challenge: Calculate the Number of Nodes in a Graph Level
Solution: Calculate the Number of Nodes in a Graph Level
Challenge: Transpose a Graph
Solution: Transpose a Graph
Challenge: Find All Paths Between Two Nodes
Solution: Find All Paths Between Two Nodes
Challenge: Check If a Graph is Strongly Connected
Solution: Check If a Graph is Strongly Connected
Challenge: Find All Connected Components in a Graph
Solution: Find All Connected Components of a Graph
Challenge: Remove an Edge
Solution: Remove an Edge
Challenge: Detect a Cycle in a Graph
Solution: Detect a Cycle in a Graph
Quiz on Graph Algorithms
6.
Greedy Algorithms
Greedy Approach: A Deep Dive
Challenge: Counting Money
Solution: Counting Money
Challenge: Connecting n Pipes With Minimum Cost
Solution: Connecting n Pipes With Minimum Cost
Challenge: Find the Egyptian Fraction's Denominators
Solution: Find the Egyptian Fraction
Challenge: Find the Minimum Platforms Required For a Station
Solution: Find the Minimum Platforms Required For a Station
Challenge: Find the Largest Number Possible
Solution: Find the Largest Number Possible
Quiz on Greedy Algorithms
7.
Dynamic Programming
Calculating Fibonacci Numbers
Introducing Dynamic Programming with Fibonacci Numbers
Memoizing Fibonacci Numbers
Tabulating Fibonacci Numbers
Challenge: The 0/1 Knapsack Problem
Solution: The 0/1 Knapsack Problem
Challenge: Staircase Problem
Solution: Staircase Problem
Challenge: The Partition Problem
Solution: The Partition Problem
Challenge: Longest Common Substring
Solution: Longest Common Substring
Challenge: Shortest Common Supersequence(SCS)
Solution: Shortest Common Supersequence(SCS)
Challenge: Longest Palindromic Subsequence
Solution: Longest Palindromic Subsequence
Challenge: The Coin Change Problem
Solution: The Coin Change Problem
Challenge: Egg Dropping Problem
Solution: Egg Dropping Problem
Challenge: Strings Interleaving
Solution: Strings Interleaving
Challenge: Edit Distance Problem
Solution: The Edit Distance Problem
Quiz on Dynamic Programming
8.
Divide and Conquer
Introduction to Divide and Conquer With Binary Search
Pascal's Triangle
Challenge: Euclidean Algorithm
Solution: Euclidean Algorithm
Challenge: Find the Peak Element
Solution: Find the Peak Element
Challenge: Maximum Sum Sublist of Size K
Solution: Maximum Sum Sublist of Size K
Challenge: Collect Coins in Minimum Steps
Solution: Collect Coins in Minimum Steps
Challenge: Find the Floor and Ceil of a Number in a Sorted List
Solution: Find the Floor and Ceil of a Number in a Sorted List
Challenge: Missing Number in a Sorted List
Solution: Missing Number in a Sorted List
Challenge: Find the Closest Number
Solution: Find the Closest Number
Challenge: Shuffle Integers
Solution: Shuffle Integers
Challenge: Inversion Count in a List
Solution: Inversion Count in a List
Quiz on Divide and Conquer
9.
Conclusion
Wrapping Up
Where to Go From Here
Home
Courses
Algorithms for Coding Interviews in Python
Challenge: Arrange a Binary List
Let's write a function to sort a binary list.
We'll cover the following...
Problem statement
Input
Output
Sample input
Sample output
Coding exercise
...