Two Sum
Easy
Kevin Naugton, Jr. YouTube Walkthrough (Java)
Arrays; Hashmaps (depending on implementation)
Best Time To Buy And Sell Stock
Easy
Nick White YouTube Walkthrough (Java)
Arrays
Contains Duplicate
Easy
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Arrays; Sorting
Maximum Subarray
Medium
Nick White Walkthrough (Java)
Arrays; Dynamic Programming; Memoization (depending on
implementation); Kadane's Algorithm (depending on Implementation)
Maximum Product Subarray
Medium
NeetCode Walkthrough (Python)
Arrays; Dynamic Programming
Find Minimum In Rotated Sorted Array
Medium
Nick White Walkthrough (Java)
Arrays; Binary Search
Search In Rotated Sorted Array
Medium
Nick White Walkthrough (Java)
Arrays; Binary Search
3Sum
Medium
Nick White Walkthrough (Java)
Arrays; Two-Pointer-Technique
3Sum Medium Blog Post, by Curt Corginia
Container with Most Water
Medium
Kevin Naughton, Jr. Walkthrough (Java)
Arrays; Two-Pointer Technique
Sum Of Two Integers
Medium
NeetCode YouTube Walkthrough (Java - yes, NeetCode used Java!!!)
Bit Manipulation
Number Of 1 Bits
Easy
NeetCode YouTube Walkthrough (Python)
Bit Manipulation
Counting Bits
Easy
NeetCode YouTube Walkthrough (Python)
Bit Manipulation; Dynamic Programming (depending on
implementation)
Missing Number
Easy
Kevin Naughton, Jr. YouTube Walkthrough (Java - note: we use
hashmaps)
Sorting (depending on implementation); Hashmaps (depending on
implementation); bit manipulation (depending on implementation);
Gaussian summation (if you think of that on the spot)
Missing Number Medium Blog Post, by Curt Corginia
Reverse Bits
Easy
NeetCode YouTube Walkthrough (Python)
Bit Manipulation; Memoization (depending on implementation)
Climbing Stairs
Easy
Kevin Naughton, Jr. YouTube Walkthrough ft. Kevin's girlfriend (Java)
Dynamic Programming (depending on implementation); Memoization (depending on implementation); can also be solved
with Fibonacci, Binets Method, or even brute force
Coin Change
Medium
Kevin Naughton, Jr. YouTube Walkthrough (Java)
(Java - Note that BackToBackSWE
has a great video as well, but you need a login to see code )
Dynamic Programming
Longest Increasing Subsequence
Medium
NeetCode YouTube Walkthrough (Python)
Dynamic Programming
Longest Common Subsequence
Medium
NeetCode YouTube Walkthrough (Python)
Dynamic Programming (depending on implementation); memoization (depending on implementation)
Word Break
Medium
NeetCode YouTube Walkthrough (Python)
Dynamic Programming (depending on implementation); memoization (depending on implementation);
Breadth-First Search (depending on implementation);
Combination Sum IV
Medium
NeetCode YouTube Walkthrough (Python)
Dynamic Programming
House Robber
Medium
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Dynamic Programming (Depending on implementation); memoization (depending on implementation)
House Robber II
Medium
Take U Forward YouTube Walkthrough (C++)
Dynamic Programming
Decode Ways
Medium
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Dynamic Programming
Unique Paths
Medium
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Dynamic Programming
Jump Game
Medium
Nick White YouTube Walkthrough (Java)
Dynamic Programming (depending on implementation); backtracking (depending on implementation);
greedy algorithm (depending on implementation)
Clone Graph
Medium
Michael Muinos YouTube Walkthrough (Java)
Graphs; Depth-First Search (depending on implementation); breadth-first search
(depending on implementation)
Course Schedule
Medium
NeetCode YouTube Walkthrough (Python)
Graphs; Backtracking (depending on implementation); Depth-First Search (depending on implementation);
topological sort (depending on implementation)
Pacific Atlantic Water Flow
Medium
NeetCode YouTube Walkthrough (Python)
Graphs; Breadth-First Search (depending on implementation); Depth-First Search
(depending on implementation);
Number Of Islands
Medium
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Graphs; Breadth-First Search (depending on implementation); Depth-First Search
(depending on implementation); Union Find (depending on implementation)
Longest Consecutive Sequence
Medium
Nick White YouTube Walkthrough (Java)
Brute force; sorting (depending on implementation); hashmaps (depending on implementation)
(PREMIUM ONLY) Alien Dictionary
Hard
Take U Forward YouTube Walkthrough (C++)
Graphs; Breadth-First Search (depending on implementation); Depth-first search
(depending on implementation)
(PREMIUM ONLY) Graph Valid Tree
Medium
NeetCode YouTube Walkthrough (Python)
Graphs; Depth-First Search (depending on implementation); Union Find
(depending on implementation)
(PREMIUM ONLY) Number Of Connected Components In An Undirected Graph
Medium
Michael Muinos YouTube Walkthrough (Java)
Graphs; Depth-First Search (depending on implementation); Disjoint
Set Union (depending on implementation)
Insert Interval
Medium
NeetCode YouTube Walkthrough (Python)
Intervals; linear search (depending on implementation);
binary search (depending on implementation)
Merge Intervals
Medium
Take U Forward YouTube Walkthrough (C++ - I preferred this to Nick White's video)
Intervals; Graphs (depending on implementation); sorting
(depending on implementation)
Non-overlapping Intervals
Medium
NeetCode YouTube Walkthrough (Python)
Intervals; Dynamic Programming (depending on implementation); greedy
algorithm (depending on implementation)
(PREMIUM ONLY) Meeting Rooms
Easy
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Intervals; Brute Force (depending on implementation); sorting
(depending on implementation)
(PREMIUM ONLY) Meeting Rooms II
Medium
NeetCode YouTube Walkthrough (Python)
Intervals; Priority Queues (depending on implementation); Intuition
Reverse linked list
Easy
Back To Back SWE Walkthrough (Java, on a whiteboard)
Linked lists; iteration (depending on implementation); recursion
(depending on implementation)
Detect Cycle In Linked List
Easy
NeetCode YouTube Walkthrough (Python)
Linked lists; Hash Table (depending on implementation); Fast And Slow
Pointers (Depending on Implementation)
Merge Two Sorted Lists
Easy
NeetCode YouTube Walkthrough (Python)
Linked lists; Hash Table (depending on implementation); Fast And Slow
Pointers (Depending on Implementation)
Merge K Sorted Lists
Hard
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Linked lists; Priority queue (depending on implementation);
divide and conquer (depending on implementation)
Remove Nth Node From End Of List
Medium
Nick White YouTube Walkthrough (Java)
Linked lists
Reorder List
Medium
Nick White YouTube Walkthrough (Java)
Linked lists
Set Matrix Zeroes
Medium
Take U Forward YouTube Walkthrough (C++)
Matrix
Spiral Matrix
Medium
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Matrix
Rotate Image
Medium
Nick White YouTube Walkthrough (Java)
Matrix
Word Search (Bloomberg Favorite)
Medium
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Matrix; Backtracking
Longest Substring Without Repeating Characters
Medium
Take U Forward YouTube Walkthrough (C++)
Strings; Sliding Window Technique
Longest Repeating Character Replacement
Medium
Nick White YouTube Walkthrough (Java)
Note that this is at 800 likes/330 dislikes, which is relatively
poor for Nick White.The NeetCode One is higher rated
Strings; Sliding Window Technique; Binary Search (Depending on implementation)
Minimum Window Substring
Hard
Back To Back SWE YouTube Walkthrough (Whiteboard overview only)
Strings; Sliding Window Technique; Hashmaps
Valid Anagram
Easy
Nick White YouTube Walkthrough (Java)
Strings; Hashmaps (depending on implementation);
sorting (depending on implementation)
Group Anagrams
Medium
Keep On Coding!!!!! YouTube Walkthrough (Java)
Strings; Hashmaps
Valid Parentheses
Easy
Nick White YouTube Walkthrough (Java)
Strings; Stacks
Valid Palindrome
Easy
Nick White YouTube Walkthrough (Java)
Strings; Two-Pointer Technique
Longest Palindromic Substring
Medium
Nick White YouTube Walkthrough (Java)
Strings; Dynamic Programming (depending on implementation);
Manacher's Algorithm (depending on implementation)
Palindromic Substrings
Medium
Alexander Le YouTube Walkthrough (JavaScript-note that this is dynamic programming,
which is quite different from the other solutions)
Strings; Dynamic Programming (depending on implementation);
Manacher's Algorithm (depending on implementation)
3Sum Medium Blog Post, by Curt Corginia
Encode And Decode Strings
Medium
NeetCode YouTube Walkthrough (Java)
Strings; Non-ASCII Characters (depending on implementation);
serialization and deserialization (depending on implementation)
Maximum Depth Of Binary Tree
Easy
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Trees; Recursion (depending on implementation); Breadth-First search
(depending on implementation); iteration (depending on implementation)
Same Tree
Easy
Take U Forward YouTube Walkthrough (C++)
Trees; Recursion (depending on implementation); Iteration (depending on implementation)
Invert Binary Tree
Easy
NeetCode YouTube Walkthrough (Python)
Trees; Recursion (depending on implementation); Iteration (depending on implementation);
neither here nor there, but this problem is kind of a meme now. Thanks Ben Awad
Binary Tree Maximum Path Sum
Hard
Take U Forward YouTube Walkthrough (C++ and Java)
Trees; Depth-First Search
Binary Tree Level-Order Traversal
Medium
MyCodeSchool YouTube Walkthrough (C++)
Trees; Breadth-First Search; Queues
3Sum Medium Blog Post, by Curt Corginia
Serialize And Deserialize Binary Tree
Hard
Back To Back SWE YouTube Walkthrough (Mostly conceptual; some java )
Trees; Depth-First Search (depending on implementation)
Subtree Of Another Tree
Easy
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Trees; Depth-First Search (depending on implementation); String Matching
(depending on implementation)
Subtree Of Another Tree
Easy
Kevin Naughton, Jr. YouTube Walkthrough (Java)
Trees; Depth-First Search (depending on implementation); String Matching
(depending on implementation)
Construct Binary Tree From Preorder And Inorder Traversal
Medium
NeetCode YouTube Walkthrough (Python)
Trees; Recursion
Validate Binary Search Tree
Medium
Nick White YouTube Walkthrough (Java)
Trees; Binary Search Trees; Tree Traversal With Recursion Or Iteration
Kth Smallest Element in a BST
Medium
Kevin Naughton Jr. YouTube Walkthrough (Java)
Trees; Binary Search Trees; Tree Traversal With Recursion Or Iteration
Lowest Common Ancestor Of A Binary Search Tree
Medium
Kevin Naughton Jr. YouTube Walkthrough ft. Carly (Java)
Trees; Binary Search Trees; Tree Traversal With Recursion Or Iteration
Implement Trie (Prefix Tree)
Medium
NeetCode YouTube Walkthrough (Python)
Trees; Trie
Design Add And Search Words Data Structure
Medium
NeetCode YouTube Walkthrough (Python)
Trees; Trie
Word Search II
Hard
NeetCode YouTube Walkthrough (Python)
Trees; Trie; Backtracking
Merge K Sorted Lists
Hard
NeetCode YouTube Walkthrough (Python)
Heaps; priority queue (depending on implementation)
Top K Frequent Elements
Medium
NeetCode YouTube Walkthrough (Python)
Heaps (depending on implementation); Hoare's Selection Algorithm/QuickSelect
(depending on implementation); Lomuto's Partition Scheme (Depending on implementation)
Find Median From Data Stream
Hard
NeetCode YouTube Walkthrough (Python)
Heaps (depending on implementation); Two Heaps; Sorting
(depending on implementation); Multiset with two pointers
(depending on implementation)