Grokking Data Structures & Algorithms for Coding Interviews

Unlock Coding Interview Success: Dive Deep into Data Structures and Algorithms!
Level:
Beginner
Study Time:
50h
Lessons:
194
Playgrounds :
221
Course Overview

In this comprehensive course, we delve deep into the world of data structures & algorithms, covering both the commonly used and the more advanced topics. Participants will learn the principles, usage, and implementation of various data structures, along with their time and space complexities. The course will feature multiple coding problems for each data structure and is tailored for coding interviews.

By the end of this course, learners will be adept at selecting and applying the most suitable data structure for any coding problem, ensuring optimized code performance. Prepare to elevate your coding skills and ace those coding interviews with confidence!

Image
Get instant access to all current and upcoming courses through subscription.
$20
.75
/mo
billed yearly ($249)
OR
Get Lifetime access to this course only.
$69
Certification on completing the course.
Course Content
16 Chapters • 194 Lessons
1.
Introduction to Data Structures
4 lessons
Who Should Take This Course?
Understanding Data Structures
Types of Data Structures
An Overview of Big-O
2.
Array
10 lessons
Introduction to Arrays
Arrays in Different Programming Languages
Problem 1: Running Sum of 1d Array (easy)
Solution: Running Sum of 1d Array (easy)
Problem 2: Contains Duplicate (easy)
Solution: Contains Duplicate
Problem 3: Left and Right Sum Differences (easy)
Solution: Left and Right Sum Differences (easy)
Problem 4: Find the Highest Altitude (easy)
Solution: Find the Highest Altitude (easy)
Introduction to Matrix
Problem 1: Richest Customer Wealth (easy)
Solution: Richest Customer Wealth (easy)
Problem 2: Matrix Diagonal Sum (easy)
Solution: Matrix Diagonal Sum (easy)
Problem 3: Row With Maximum Ones(easy)
Solution: Row With Maximum Ones(easy)
Introduction to Stack
Operations on Stack
Implementing Stack Data Structure
Applications of Stack
Problem 1: Balanced Parentheses (easy)
Solution: Balanced Parentheses
Problem 2: Reverse a String (easy)
Solution: Reverse a String
Problem 3: Decimal to Binary Conversion (medium)
Solution: Decimal to Binary Conversion
Problem 4: Next Greater Element (easy)
Solution: Next Greater Element
Problem 5: Sorting a Stack (easy)
Solution: Sorting a Stack
Problem 6: Simplify Path (medium)
Solution: Simplify Path
Problem 7: Remove All Adjacent Duplicates In String (medium)
Solution: Remove All Adjacent Duplicates In String
Problem 8: Removing Stars From a String (medium)
Solution: Removing Stars From a String
Problem 9: Make The String Great (easy)
Solution: Make The String Great
Introduction to Queues
Working with Simple Queues
Diving Deeper – Circular Queues and Deques
Applications and Advanced Concepts
Problem 1: Reverse a Queue (easy)
Solution: Reverse a Queue
Problem 2: Implement Stack using Queues
Solution: Implement Stack using Queues (easy)
Problem 3: Generate Binary Numbers from 1 to N
Solution: Generate Binary Numbers from 1 to N (medium)
Problem 4: Palindrome Check using Queue (easy)
Solution: Palindrome Check using Queue
Problem 5: Zigzag Iterator (medium)
Solution: Zigzag Iterator
Problem 6: Max of All Subarrays of Size 'k'
Solution: Max of All Subarrays of Size 'k' (medium)
Introduction to LinkedList
Operations on Singly Linked List
Operations on Doubly Linked List
Problem 1: Reverse Linked List (easy)
Solution: Reverse Linked List
Problem 2: Remove Duplicates from Sorted List (easy)
Solution: Remove Duplicates from Sorted List
Problem 3: Merge Two Sorted Lists (easy)
Solution: Merge Two Sorted Lists
Problem 4: Find if Doubly Linked List is a Palindrome (easy)
Solution: Find if Doubly Linked List is a Palindrome
Problem 5: Swap Nodes in Pairs (medium)
Solution: Swap Nodes in Pairs
Introduction to Tree
Binary Search Tree (BST)
Maximum Depth (or Height) of Binary Tree (easy)
Solution: Maximum Depth (or Height) of Binary Tree
Balanced Binary Tree (easy)
Solution: Balanced Binary Tree
Minimum Difference Between BST Nodes (easy)
Solution: Minimum Difference Between BST Nodes
Range Sum of BST (easy)
Solution: Range Sum of BST
Kth Smallest Element in a BST (medium)
Solution: Kth Smallest Element in a BST
Closest Binary Search Tree Value (medium)
Solution: Closest Binary Search Tree Value
Merge Two Binary Trees (medium)
Solution: Merge Two Binary Trees
Introduction to Hashing
Introduction to Hash Tables
Issues with Hash Tables
Problem 1: First Non-repeating Character (easy)
Solution: First Non-repeating Character (easy)
Problem 2: Largest Unique Number (easy)
Solution: Largest Unique Number (easy)
Problem 3: Maximum Number of Balloons (easy)
Solution: Maximum Number of Balloons (easy)
Problem 4: Longest Palindrome(easy)
Solution: Longest Palindrome(easy)
Problem 5: Ransom Note (easy)
Solution: Ransom Note (easy)
Introduction to HashSets
Problem 1: Counting Elements (easy)
Solution: Counting Elements (easy)
Problem 2: Jewels and Stones (easy)
Solution: Jewels and Stones (easy)
Problem 3: Unique Number of Occurrences (easy)
Solution: Unique Number of Occurrences (easy)
Problem 4: Longest Substring Without Repeating Characters (medium)
Solution: Longest Substring Without Repeating Characters (medium)
Introduction to Heap
Take Gifts From the Richest Pile(easy)
Solution: Take Gifts From the Richest Pile(easy)
Sort Characters By Frequency (easy)
Solution: Sort Characters By Frequency (easy)
Minimum Cost to Connect Sticks(medium)
Solution: Minimum Cost to Connect Sticks(medium)
Find the Median of a Number Stream (medium)
Solution: Find the Median of a Number Stream
Introduction to Graph
Graph Representations
Graph as an Abstract Data Type (ADT)
Graph Traversal - Depth First Search(DFS)
Graph Traversal - Breadth First Search (BFS)
Problem 1: Find if Path Exists in Graph(easy)
Solution: Find if Path Exists in Graph(easy)
Problem 2: Number of Provinces (medium)
Solution: Number of Provinces (medium)
Problem 3: Minimum Number of Vertices to Reach All Nodes(medium)
Solution: Minimum Number of Vertices to Reach All Nodes(medium)
Introduction to Trie
Implement Trie (Prefix Tree) (medium)
Solution: Implement Trie (Prefix Tree)
Index Pairs of a String (easy)
Solution: Index Pairs of a String
Extra Characters in a String (medium)
Solution: Extra Characters in a String
Search Suggestions System (medium)
Solution: Search Suggestions System
Design Add and Search Words Data Structure (medium)
Solution: Design Add and Search Words Data Structure
Introduction to Sorting Algorithms
Advanced Sorting Techniques
Apple Redistribution into Boxes (easy)
Solution: Apple Redistribution into Boxes
Sort Array by Increasing Frequency (easy)
Solution: Sort Array by Increasing Frequency
Sort Vowels in a String (medium)
Solution: Sort Vowels in a String
Reduction Operations to Make the Array Elements Equal (medium)
Solution: Reduction Operations to Make the Array Elements Equal
Divide Array Into Arrays With Max Difference (medium)
Solution: Divide Array Into Arrays With Max Difference
Top 'K' Frequent Numbers (medium)
Solution: Top 'K' Frequent Numbers
Meeting Rooms II (medium)
Solution: Meeting Rooms II
Introduction to Searching Algorithms
Maximum Count of Positive Integer and Negative Integer (easy)
Solution: Maximum Count of Positive Integer and Negative Integer
Minimum Common Value (easy)
Solution: Minimum Common Value
Frequency of the Most Frequent Element (medium)
Solution: Frequency of the Most Frequent Element
Minimize the Maximum of Two Arrays (medium)
Solution: Minimize the Maximum of Two Arrays
Search a 2D Matrix II (medium)
Solution: Search a 2D Matrix II
Sqrt (medium)
Solution: Sqrt
Introduction to Greedy Algorithm
Valid Palindrome II (easy)
Solution: Valid Palindrome II
Maximum Length of Pair Chain (medium)
Solution: Maximum Length of Pair Chain
Minimum Add to Make Parentheses Valid (medium)
Solution: Minimum Add to Make Parentheses Valid
Remove Duplicate Letters (medium)
Solution: Remove Duplicate Letters
Largest Palindromic Number (Medium)
Solution: Largest Palindromic Number
Removing Minimum and Maximum From Array (medium)
Solution: Removing Minimum and Maximum From Array
Introduction to Divide and Conquer Algorithm
Majority Element (easy)
Solution: Majority Element
Longest Nice Substring (easy)
Solution: Longest Nice Substring
Sort List (medium)
Solution: Sort List
Beautiful Array (medium)
Solution: Beautiful Array
Median of Two Sorted Arrays (medium)
Solution: Median of Two Sorted Arrays
Related Courses
Image
Grokking the Coding Interview: Patterns for Coding Questions
Image
Grokking the Art of Recursion for Coding Interviews
What people say about our courses
Image
Get instant access to all current and upcoming courses through subscription.
$20
.75
/mo
billed yearly ($249)
OR
Get Lifetime access to this course only.
$69
Certification on completing the course.