Log In
0% completed
All Lessons
Free Lessons (16)
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)
Quiz: Test Your Understanding of Complexity
Introduction to Arrays
Arrays
The var vs. let vs. const
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
Singly Linked List Deletion
Deletion at the Tail
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 Tree
What is a Binary Search Tree (BST)?
Implementing a Binary Search Tree in JavaScript
Binary Search Tree Insertion
Binary Search Tree Insertion (Implementation)
Pre-Order Traversal
In-Order Traversal
Post-Order Traversal
Searching in a Binary Search Tree (Implementation)
Deletion in Binary Search Tree
Deletion in Binary Search Tree (Implementation)
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 a 2-3 Tree?
2-3 Insertion
2-3 Deletion (Element at Leaf)
2-3 Deletion (Element at Internal Node)
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 a 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
Trees vs Hash Tables
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