Example Curriculum
Introduction
Available in
days
days
after you enroll
Arrays - Question #1 Google Interview Question Two Sum (Easy)
Available in
days
days
after you enroll
- Interview Question #1 Two Sum (7:14)
- How To Approach Our Problem (11:45)
- Writing Our Brute Force Solution (6:40)
- Testing Our Solution With Our Test Cases (9:23)
- Submitting To Leetcode (1:49)
- Analyzing Space and Time Complexity (10:37)
- Optimizing Our Solution (8:06)
- Coding Our Optimal Solution (5:21)
- Testing Our Optimal Solution With Our Test Cases (8:02)
- Checking Performance On LeetCode (3:24)
- Solution In Other Languages
- Let's Have Some Fun (+ Free Resources)
Arrays - Questions #2 - Container With Most Water (Medium)
Available in
days
days
after you enroll
- Interview Question #2 - Container With Most Water (4:46)
- Coming Up With Test Cases (4:19)
- Thinking Through A Logical Brute Force Solution (12:49)
- Coding Out Our Brute Force Solution (7:20)
- Stepping Through Our Code (4:44)
- Thinking About Our Optimal Solution (13:52)
- Coding Our Optimal Solution And Testing On LeetCode (9:50)
- Unlimited Updates
Arrays - Questions #3 - Trapping Rainwater (Hard)
Available in
days
days
after you enroll
Strings - Question #4 - Typed Out Strings (Easy)
Available in
days
days
after you enroll
Strings - Question #5 - Longest Substring Without Repeating Characters (Medium)
Available in
days
days
after you enroll
- Interview Question #5 - Longest Substring Without Repeating Characters (6:39)
- Coming Up With A Brute Force Approach (6:34)
- Coding Our Brute Force Solution (9:57)
- Space And Time Complexity (3:16)
- Sliding Window Technique (5:18)
- Hints For Optimizing Our Solution (2:15)
- Thinking About Optimal Solution (9:09)
- Coding Our Optimal Solution (8:30)
- Note: Correction for explanation of +1
- Optimal Code And Testing On LeetCode (3:18)
Strings - Question #6 - Valid Palindrome & Almost Palindrome
Available in
days
days
after you enroll
Introducing Linked Lists - Basics and Reverse A Linked List
Available in
days
days
after you enroll
Linked List - Question #7 - M, N Reversals (Medium)
Available in
days
days
after you enroll
Linked List - Question #8 - Merge Multi-Level Doubly Linked List (Medium)
Available in
days
days
after you enroll
Linked List - Question #9 - Cycle Detection (Medium)
Available in
days
days
after you enroll
Stacks - Question #10 - Valid Parentheses (Easy)
Available in
days
days
after you enroll
Stacks - Question #11 - Minimum Brackets To Remove (Medium)
Available in
days
days
after you enroll
Queues - Question #12 - Implement Queue With Stacks (Easy)
Available in
days
days
after you enroll
Recursion (Sorting and Hoare's QuickSelect) - Question #13 - Kth Largest Element
Available in
days
days
after you enroll
- Introducing Recursion (3:07)
- Optional: Tail Recursion (19:54)
- Sorting (2:23)
- Interview Question #13 - Kth Largest Element (6:50)
- Insights From Quick Sort (12:36)
- Understanding Divide And Conquer (8:17)
- Coding Quicksort Into Our Solution (14:53)
- Understanding Hoare's Quickselect Algorithm (6:55)
- Coding Our Solution With Quickselect (11:47)
- Correction About Time Complexity!
Recursion (Binary Search) - Question #14 - Start And End Of Target (Medium)
Available in
days
days
after you enroll
Binary Trees - Question #15 - Maximum Depth Of Binary Tree (Easy)
Available in
days
days
after you enroll
Binary Trees - Question #16 - Level Order Of Binary Tree (Medium)
Available in
days
days
after you enroll
Binary Trees - Question #17 - Right Side View of Tree (Medium)
Available in
days
days
after you enroll
- Question #17 - Right Side View of Tree (6:43)
- Understanding The Breadth First Search Approach (8:26)
- Understanding The Depth First Search Approach (9:22)
- Thinking About Pre-Order, In-Order, and Post-Order Traversals For Our Solution (12:23)
- Completing Our DFS Solution (7:41)
- Coding Our Final DFS Solution (11:55)
Full & Complete Binary Trees - Question #18 - Number Of Nodes In Complete Tree
Available in
days
days
after you enroll
Binary Search Tree - Question #19 - Validate Binary Search Tree (Medium)
Available in
days
days
after you enroll
Heaps & Priority Queues
Available in
days
days
after you enroll
Intro To 2D-Arrays - Basics & Traversal Algorithms
Available in
days
days
after you enroll
2D-Arrays - Question #20 Number Of Islands (Medium)
Available in
days
days
after you enroll
- A General Approach To Thinking About Most Graph Questions (9:09)
- Question #20 Number Of Islands (7:50)
- Approaching Our Problem - Thinking Deeply About The Values (16:11)
- Approaching Our Problem - Thinking About Traversals (8:55)
- Coding Our Solution (19:08)
- Thinking About Space And Time Complexity (14:38)
2D-Arrays - Question #21 Rotting Oranges (Medium)
Available in
days
days
after you enroll
2D-Arrays - Question #22 - Walls And Gates (Medium)
Available in
days
days
after you enroll
Intro to Graphs - Representation & Traversal Algorithms
Available in
days
days
after you enroll
Graphs - Question #23 - Time Needed to Inform All Employees (Medium)
Available in
days
days
after you enroll
Graphs - Question #24 - Course Scheduler (Medium)
Available in
days
days
after you enroll
Graphs - Question #25 - Network Time Delay (Medium)
Available in
days
days
after you enroll
- Question #25 - Network Time Delay (12:39)
- Thinking About How To Approach The Problem (8:37)
- Greedy Method & What Is Dijkstra's Algorithm? (15:30)
- Thinking About A Solution With Dijkstra's Algorithm (8:55)
- Coding Our Solution With Dijkstra (17:32)
- Time And Space Complexity Of Our Solution (13:08)
- Thinking About Negative Weights (7:41)
- What is The Bellman-Ford Algorithm? - Conceptualizing Dynamic Programming (16:22)
- What is The Bellman-Ford Algorithm? - The Algorithm Itself (16:17)
- Coding Our Solution With Bellman-Ford (9:19)
Dynamic Programming - Question #26 - Minimum Cost Of Climbing Stairs (Easy)
Available in
days
days
after you enroll
- Question #26 - Minimum Cost Of Climbing Stairs & How To Approach DP (9:38)
- Understanding & Identifying Recurrence Relation (15:48)
- First Step - Recursive Solution From Recurrence Relation (5:34)
- Second Step - Memoizing Our Redundant Recursive Calls (7:49)
- Coding Our Memoization Optimization (7:50)
- Understanding The Bottom Up Approach (Tabulation) (6:29)
- Third Step - Bottom Up Tabulation (5:24)
- Fourth Step - Bottom Up Optimization (6:52)
Dynamic Programming - Question #27 - Knight Probability In Chessboard (Medium)
Available in
days
days
after you enroll
- Question #27 - Knight Probability In Chessboard (10:09)
- Thinking About Test Cases To Help Us (3:51)
- Identifying The Recurrence Relation (15:29)
- First Step - Recursive Solution From Recurrence Relation (5:10)
- Second Step - Memoizing Our Redundant Recursive Calls (14:13)
- Figuring Out The Logic For Our Bottom Up Solution (13:59)
- Third Step - Bottom Up Tabulation (8:31)
- Fourth Step - Bottom Up Optimization (6:55)
- Dynamic Programming Question List
Backtracking - Question #28 - Sudoku Solver (Hard)
Available in
days
days
after you enroll
- Understanding The Basics Of Backtracking (7:06)
- Question #28 - Sudoku Solver (4:19)
- Learning The Backtracking Template (11:18)
- Applying Our Backtracking Template To Sudoku Solver Logic (6:42)
- Coding How To Get Box ID (7:49)
- Setting Up Our Solution Code (7:05)
- Coding The Recursive Backtracking Portion Of Our Solution (19:18)
- Thinking About The Space And Time Complexity (6:58)
Interface Design - Question #29 - Monarchy
Available in
days
days
after you enroll
Tries - Question #30 - Implement Prefix Trie (Medium)
Available in
days
days
after you enroll
Where To Go From Here?
Available in
days
days
after you enroll
Appendix: Big O
Available in
days
days
after you enroll
- Note About Appendix Videos
- Section Overview (2:24)
- What Is Good Code? (6:57)
- Big O and Scalability (11:08)
- O(n) (5:39)
- O(1) (6:10)
- Exercise: Big O Calculation
- Solution: Big O Calculation (5:54)
- Exercise: Big O Calculation 2
- Solution: Big O Calculation 2 (2:29)
- Simplifying Big O (1:50)
- Big O Rule 1 (4:28)
- Big O Rule 2 (6:36)
- Big O Rule 3 (3:13)
- O(n^2) (7:13)
- Big O Rule 4 (6:47)
- Big O Cheat Sheet (3:18)
- What Does This All Mean? (5:32)
- O(n!) (1:18)
- 3 Pillars Of Programming (3:32)
- Space Complexity (2:22)
- Exercise: Space Complexity (6:24)
- Exercise: Twitter (7:13)
- Section Summary (4:43)
Appendix: Arrays
Available in
days
days
after you enroll
Appendix: Hash Tables
Available in
days
days
after you enroll
Appendix: Linked Lists
Available in
days
days
after you enroll
Appendix: Stacks + Queues
Available in
days
days
after you enroll
Appendix: Trees
Available in
days
days
after you enroll
Appendix: Searching + BFS + DFS
Available in
days
days
after you enroll
Appendix: Recursion
Available in
days
days
after you enroll
Appendix: Sorting
Available in
days
days
after you enroll
- Sorting Introduction (7:01)
- The Issue With sort() (6:51)
- Sorting Algorithms (3:37)
- Bubble Sort (3:45)
- Exercise: Bubble Sort
- Solution: Bubble Sort (5:06)
- Selection Sort (2:39)
- Exercise: Selection Sort
- Solution: Selection Sort (2:23)
- Dancing Algorithms (1:36)
- Exercise: Insertion Sort
- Insertion Sort (2:38)
- Solution: Insertion Sort (2:06)
- Merge Sort and O(n log n) (8:59)
- Exercise: Merge Sort
- Solution: Merge Sort (4:44)
- Quick Sort (7:40)