Log In
0% completed
All Lessons
Free Lessons (19)
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
Introduction to Arrays
What is an Array?
Multidimensional Arrays
What Is a Vector?
Challenge: Remove Even Integers From Array
Solution: Remove Even Integers From Array
Challenge: Merge Two Sorted Arrays
Solution: Merge Two Sorted Arrays
Challenge: Find Two Numbers That Add Up to K
Solution: Find Two Numbers That Add Up to K
Challenge: Product of Array Except Self
Solution: Product of Array Except Self
Challenge: Find Minimum Value in Array
Solution: Find Minimum Value in Array
Challenge: First Non-Repeating Integer in an Array
Solution: First Non-Repeating Integer in an Array
Challenge: Find Second Maximum Value in an Array
Solution: Find Second Maximum Value in an Array
Challenge: Rotate Array
Solution: Rotate Array
Challenge: Rearrange Positive & Negative Values
Solution: Rearrange Positive & Negative Values
Challenge: Rearrange Sorted Array in Max/Min Form
Solution: Rearrange Sorted Array in Max/Min Form
Challenge: Maximum Subarray
Solution: Maximum Subarray
Arrays Quiz: Test Your Understanding of Arrays
Introduction to Linked Lists
Singly Linked Lists (SLL)
Basic Linked List Operations
Singly Linked List Insertion
Deletion in a Singly Linked List
Linked Lists vs. Arrays
Doubly Linked Lists (DLL)
Singly Linked Lists vs. Doubly Linked Lists
Challenge: Insertion at Tail
Solution: Insertion at Tail
Challenge: Search in a Singly Linked List
Solution: Search in a Singly Linked List
Challenge: Deletion by Value
Solution: Deletion by Value
Challenge: Find the Length of a Linked List
Solution: Find the Length of a Linked List
Challenge: Reverse Linked List
Solution: Reverse Linked List
Challenge: Linked List Cycle
Solution: Linked List Cycle
Challenge: Middle of the Linked List
Solution: Middle of the Linked List
Challenge: Remove Duplicates from a Linked List
Solution: Remove Duplicates from a Linked List
Challenge: Union and Intersection of Linked Lists
Solution: Union and Intersection of Linked Lists
Challenge: Return the Nth Node from End
Solution: Return the Nth Node from End
Challenge: Find If a Doubly Linked List Is a Palindrome
Solution: Find If a Doubly Linked List Is a Palindrome
Linked Lists Quiz: Test Your Understanding of Linked Lists
Introduction to Stack/Queues
What is a Stack?
Stack (Implementation)
What is a Queue?
Queue (Implementation)
Challenge: Generate Binary Numbers From 1 to n Using a Queue
Solution: Generate Binary Numbers From 1 to n Using a Queue
Challenge: Implement Two Stacks Using One Array
Solution: Implement Two Stacks Using One Array
Challenge: Reverse First k Elements of Queue
Solution: Reverse First k Elements of Queue
Challenge: Implement Queue Using Stacks
Solution: Implement Queue Using Stacks
Challenge: Sort Values in a Stack
Solution: Sort Values in a Stack
Challenge: Evaluate Postfix Expression Using a Stack
Solution: Evaluate Postfix Expression Using a Stack
Challenge: Next Greater Element Using a Stack
Solution: Next Greater Element Using a Stack
Challenge: Find the Celebrity
Solution: Find the Celebrity
Challenge: Valid Parentheses
Solution: Valid Parentheses
Challenge: Min Stack
Solution: Min Stack
Stack/Queue Quiz: Test Your Understanding of Stack/Queue
Introduction to Graphs
What is a Graph?
Types of Graphs
Representation of Graphs
Graph Implementation
Complexities of Graph Operations
What is a Bipartite Graph?
Graph Traversal Algorithms
Challenge: Implement Breadth-First Search
Solution: Implement Breadth-First Search
Challenge: Implement Depth-First Search
Solution: Implement Depth-First Search
Challenge: Detect Cycle in a Directed Graph
Solution: Detect Cycle in a Directed Graph
Challenge: Find a Mother Vertex in a Directed Graph
Solution: Find a Mother Vertex in a Directed Graph
Challenge: Count the number of Edges in an Undirected Graph
Solution: Count the Number of Edges in an Undirected Graph
Challenge: Check If a Path Exists between Two Vertices
Solution: Check If a Path Exists between Two Vertices
Challenge: Graph Valid Tree
Solution: Graph Valid Tree
Challenge: Find the Shortest Path between Two Vertices
Solution: Find the Shortest Path between Two Vertices
Challenge: Remove Edge from a Directed Graph
Solution: Remove Edge from a Directed Graph
Graph Quiz: Test Your Understanding of Graphs
Introduction to Trees
An Introduction to Trees and Basic Tree Properties
What is a Binary Tree?
What Makes a Tree 'balanced'?
More on Complete Binary Trees
Skewed Binary Trees
What is a Binary Search Tree (BST)?
Implementing a Binary Search Tree in C++
Binary Search Tree Insertion
Binary Search Tree Insertion (Implementation)
Searching in a Binary Search Tree (Implementation)
Deletion in Binary Search Tree
Deletion in Binary Search Tree (Implementation)
Pre-Order Traversal
Post-Order Traversal
In-Order Traversal
What is an AVL Tree?
AVL Insertion
AVL Deletion
What is a Red-Black Tree?
Red-Black Tree Insertion
Red-Black Tree Deletion
What is 2-3 Tree?
2-3 Insertion
2-3 Deletion (Case #1)
2-3 Deletion (Case #2)
2-3-4 Trees
Overview of Trees
Challenge: Find Minimum Value in Binary Search Tree
Solution: Find Minimum Value in Binary Search Tree
Challenge: Find kth Maximum Value in Binary Search Tree
Solution: Find kth Maximum Value in Binary Search Tree
Challenge: Find Ancestors of a Given Node in a BST
Solution: Find Ancestors of a Given Node in a BST
Challenge: Find the Height of Binary Search Tree
Solution: Find the Height of Binary Search Tree
Challenge: Find Nodes at k Distance from the Root
Solution: Find Nodes at k Distance from the Root
Trees Quiz: Test Your Understanding of Trees
Trie
What is a Trie?
Structure of a Trie
Insertion in a Trie
Search in a Trie
Deletion in Trie
Challenge: Total Number of Words in a Trie
Solution: Total Number of Words in a Trie
Challenge: Find All Words Stored in Trie
Solution: Find All Words Stored in Trie
Challenge: Array Sort Using Trie
Solution: Array Sort Using Trie
Challenge: Word Formation From a Dictionary Using Trie
Solution: Word Formation From a Dictionary Using Trie
Trie Quiz: Test Your Understanding of Tries
Introduction to Heap
What is a Heap?
Max Heap: Introduction
Max Heap (Implementation)
Min Heap: Introduction
Min Heap (Implementation)
Challenge: Convert Max Heap to Min Heap
Solution: Convert Max Heap to Min Heap
Challenge: Find k Smallest Elements in an Array
Solution: Find k Smallest Elements in an Array
Challenge: Find K Largest Elements in an Array
Solution: Find K Largest Elements in an Array
Heap Quiz: Test Your Understanding of Heaps
Introduction to Hashing
What is a Hash Table?
The Hash Function
Collisions in Hash Tables
Building a Hash Table from Scratch
Add/Remove & Search in Hash Table (Implementation)
A Quick Overview of Hash Tables
Trie vs. Hash Table
unordered_map vs unordered_set
Challenge: An Array as a Subset of Another Array
Solution: An Array as a Subset of Another Array
Challenge: Check if Arrays are Disjoint
Solution: Check if Arrays are Disjoint
Challenge: Find Symmetric Pairs in an Array
Solution: Find Symmetric Pairs in an Array
Challenge: Trace the Complete Path of a Journey
Solution: Trace the Complete Path of a Journey
Challenge: Find Two Pairs in an Array Such That a+b = c+d
Solution: Find Two Pairs in an Array Such That a+b = c+d
Challenge: A Subarray with a Sum of 0
Solution: A Subarray with a Sum of 0
Challenge: Word Formation Using a Hash Table
Solution: Word Formation Using a Hash Table
Challenge: Find Two Numbers That Add up to k—Hashing
Solution: Find Two Numbers That Add up to k—Hashing
Challenge: First Non-Repeating Integer in an Array—Hashing
Solution: First Non-Repeating Integer in an Array—Hashing
Challenge: Linked List Cycle—Hashing
Solution: Linked List Cycle—Hashing
Challenge: Remove Duplicates from Linked List - Hashing
Solution: Remove Duplicates from Linked List - Hashing
Challenge: Union and Intersection of Linked Lists — Hashing
Solution: Union and Intersection of Linked Lists — Hashing
Hashing Quiz: Test Your Understanding of Hashing
Summary of Data Structures
Overview of Linear & Non-Linear Data Structures
Conclusion
Mock interview
Premium
Data Structures
Practice Mock Interview