Log In
0% completed
All Lessons
Free Lessons (13)
Introduction
Who This Course Is For
Learning Outcomes
Algorithmic Paradigms
Brute Force
Greedy Algorithms
Divide and Conquer
Dynamic Programming
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 a Nested Loop with Addition
Solution: Big O of a Nested Loop with Addition
Challenge: Big O of a Nested Loop with Subtraction
Solution: Big O of a Nested Loop with Subtraction
Challenge: Big O of a Nested Loop with Multiplication
Solution: Big O of a 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)
Quiz on Complexity
Sorting and 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 Array
Solution: Search in a Rotated Array
Challenge: Group Anagrams
Solution: Group Anagrams
Challenge: Arrange a Binary Array
Solution: Arrange a Binary Array
Challenge: Find the Maximum Product of Two Integers in an Array
Solution: Find the Maximum Product of Two Integers in an Array
Challenge: Find Duplicates in an Array with No Repetition
Solution: Find Duplicates in an Array with No Repetition
Challenge: Search in a 2D Array
Solution: Search in a 2D Array
Challenge: Search Position
Solution: Search Position
Challenge: The Dutch National Flag Problem
Solution: The Dutch National Flag Problem
Quiz on Sorting and Searching
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 in 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
Greedy Algorithms
Greedy Algorithms: 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
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: The Staircase Problem
Solution: The 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: Interleaving Strings
Solution: Interleaving Strings
Challenge: The Edit Distance Problem
Solution: The Edit Distance Problem
Quiz on Dynamic Programming
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 Subarray of Size k
Solution: Maximum Sum Subarray 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 Array
Solution: Find the Floor and Ceil of a Number in a Sorted Array
Challenge: Missing Number in a Sorted Array
Solution: Missing Number in a Sorted Array
Challenge: Find the Closest Number
Solution: Find the Closest Number
Challenge: Shuffle Integers
Solution: Shuffle Integers
Challenge: Inversion Count in an Array
Solution: Inversion Count in an Array
Quiz on Divide and Conquer
Conclusion
Wrapping Up
Where to Go from Here
Practice Mock Interview
Algorithms for Coding Interviews in C#
/
...
/
Solution: Counting Money
Solution: Counting Money
Review the solution to the counting money problem in detail.
We'll cover the following...
Solution: The greedy approach
Explanation
Time complexity
Solution: The greedy approach
...