Log In
Join
for free
Back To Course Home
Algorithms for Coding Interviews in C++
0% completed
Introduction
Who This Course Is For
Learning Outcomes
Algorithmic Paradigms
Brute Force
Greedy Algorithms
Divide and Conquer
Dynamic Programming
Introduction to Complexity Measures
Comparing Algorithms
Example: Measuring Time Complexity of a Single Loop Algorithm
Example: Time Complexity of an Algorithm With Nested Loops
Introduction to Asymptotic Analysis and Big O
Other Common Asymptotic Notations and Why Big O Trumps Them
Useful Formulae
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
Sorting & Searching
Selection Sort, Bubble Sort, & Insertion Sort
Merge Sort
Quicksort
Overview of Sorting Algorithms
Searching Algorithms
Challenge: Find Two Numbers that Add up to "s"
Solution: Find Two Numbers that Add up to "s"
Challenge: Search in a Rotated Array
Solution: Search in a Rotated Array
Challenge: Group Anagrams
Solution: Group Anagrams
Challenge: Find the Median of Two Sorted Arrays
Solution: Find the Median of Two Sorted Arrays
Challenge: Find Duplicates in Array
Solution: Find Duplicates in Array
Challenge: Search in Sorted Matrix
Solution: Search in Sorted Matrix
Challenge: Count Element Occurrence
Solution: Count Element Occurrence
Challenge: Search Insert Position
Solution: Search Insert Position
Challenge: Sparse Search
Solution: Sparse Search
Challenge: Dutch National Flag Problem
Solution: Dutch National Flag Problem
Quiz on Sorting & 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 Given Graph Level
Solution: Calculate the Number of Nodes in a Given Graph Level
Challenge: Print the Transpose of a Graph
Solution: Print the Transpose of a Graph
Challenge: Print all Paths Between Two Nodes
Solution: Print all Paths Between Two Nodes
Challenge: Check If Graph is Strongly Connected
Solution: Check if a Graph is Strongly Connected
Challenge: Print all Connected Components in a Graph
Solution: Print all Connected Components of a Graph
Challenge: Check if Removing Edge Creates Components in Graph
Solution: Check if Removing Given Edge Creates Components in Graph
Challenge: Check If Given Graph is Bipartite
Solution: Check If Given Graph is Bipartite
Challenge: Topological Sorting of a Graph
Solution: Topological Sorting of a Graph
Quiz on Graph Algorithms
Greedy Algorithms
Activity Scheduling Problem
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
Solution: Find the Egyptian Fraction
Challenge: Find Minimum Number of Platforms Required for a Train Station
Solution: Find Minimum Number of Platforms Required for a Train Station
Challenge: Help the Policemen Catch the Thieves
Solution: Help the Policemen Catch the Thieves
Challenge: Fractional Knapsack Problem
Solution: Fractional Knapsack Problem
Challenge: Largest Number with Given Number of Digits and Sum of Digits
Solution: Largest Number with Given Number of Digits and Sum of Digits
Challenge: Graph Coloring
Solution: Graph Coloring
Challenge: Find the Minimum Spanning Tree of the Given Graph
Solution: Find the Minimum Spanning Tree - Kruskal’s Solution
Solution: Find the Minimum Spanning Tree - Prim's Solution
Challenge: Find Shortest Distance of Each Node from the Source
Solution: Shortest Distance of Each Node from the Source
Quiz on Greedy Algorithms
Dynamic Programming
Calculating Fibonnacci 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
Solution: Shortest Common Supersequence
Challenge: Longest Palindromic Subsequence
Solution: Longest Palindromic Subsequence
Challenge: The Coin Change Problem
Solution: 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
Divide and Conquer
Introduction to Divide and Conquer with Binary Search
Pascal's Triangle
Challenge: Euclidean Algorithm
Solution: Euclidean Algorithm
Challenge: Peak Element
Solution: Peak Element
Challenge: Maximum Subarray Sum
Solution: Maximum Subarray Sum
Challenge: Merge a Number of Sorted Arrays
Solution: Merge a Number of Sorted Arrays
Challenge: Collect Coins in Minimum Steps
Solution: Collect Coins in Minimum Steps
Challenge: Find The Closest Number
Solution: Find Closest Number
Challenge: Closest Pair of Points
Solution: Closest Pair of Points
Challenge: Missing Number in Sorted Array
Solution: Missing Number in Sorted Array
Challenge: Binary Search on Singly Linked List
Solution: Binary Search on Singly Linked List
Challenge: Shuffle Integers
Solution: Shuffle Integers
Quiz on Divide and Conquer
Appendix: Auxiliary Source Code
STL Classes
Linked List
Array Functions
Graph
Conclusion
Overview
Where to Go from Here
Solution: Egg Dropping Problem
We'll cover the following
Solution #1: Brute Force
Pseudocode
Solution #2: Memoization
Solution #3: Tabularization
Time Complexity
Solution #4: Using Binomial Coefficient and Search Solution
Time Complexity
Solution #1: Brute Force
#
Level up your interview prep. Join Educative to access 70+ hands-on prep courses.
Start Learning