Below are some solutions to coding puzzles and some common patterns for coding problems. For more about me, see my homepage.


Patterns

Pattern Example Puzzles
Binary Search Find K Closest Elements
Breadth-First Search All Nodes Distance K in a Binary Tree, Binary Tree Right Side View
Depth-First Search Binary Tree Max Sum, Course Schedule
Divide and Conquer Algorithms Largest Concatenated Number From Array
Dynamic Programming 0-1 Knapsack, Distinct Subsequences
Heap Magic Candy Bags
Prefix Sum Continuous Subarray Sum
Queue Composite Words
Quick Select K Closest Points to Origin
Sliding Window Technique Find Anagrams in String
Stack Basic Calculator I, Decode a String, Daily Temperatures
Two Pointer Technique Valid Palindrome III

Puzzles

Puzzle Difficulty External Link Patterns
0-1 Knapsack Medium Dynamic Programming
Add Two Linked Lists Representing Numbers Medium Leetcode 2
All Nodes Distance K in a Binary Tree Medium Leetcode 863 Breadth-First Search, Depth-First Search
Anagram Check Easy
Anagram Groups Medium
Balanced Split of an Array of Numbers Medium
Basic Calculator I Hard Leetcode 224 Stack
Basic Calculator II Medium Leetcode 227 Stack
Biggest Square in City Skyline Medium Dynamic Programming
Binary Tree Max Sum Medium Depth-First Search
Binary Tree Right Side View Medium Leetcode 199 Breadth-First Search
Binary Tree Vertical Order Traversal Medium Leetcode 314 (Premium) Breadth-First Search
Brace Permutations Medium Breadth-First Search
Bracket Balance Medium Stack
Buildings with an Ocean View Medium Leetcode 1762 (Premium)
Cafeteria Seating Medium
Clone a Graph Medium Leetcode 133 Breadth-First Search, Depth-First Search
Composite Words Hard Queue
Continuous Subarray Sum Medium Leetcode 523 Prefix Sum
Convert Binary Search Tree to Sorted Doubly Linked List Medium Leetcode 426 (Premium) Depth-First Search
Copy Linked List with Arbitrary Pointer Medium Leetcode 138
Course Schedule Medium Leetcode 207 Depth-First Search
Custom Sort String Medium Leetcode 791
Daily Temperatures Medium Leetcode 739 Stack
Decode a String Medium Stack
Decrypt a String Easy Stack
Delete Linked List Index Easy
Diameter of a Binary Tree Easy Leetcode 543 Depth-First Search
Distinct Subsequences Medium Dynamic Programming
Dot Product of Two Sparse Vectors Medium Leetcode 1570 (Premium) Binary Search
Equal Partition of an Array of Numbers Medium
Find Anagrams in String Medium Sliding Window Technique
Find First and Last Position of an Element in a Sorted Array Medium Leetcode 34 Binary Search
Find K Closest Elements Medium Leetcode 658 Binary Search
Find Number of Palindromic Substrings in a String Medium Dynamic Programming
Find Peak Element Medium Leetcode 162 Binary Search
Find the Kth Largest Element Medium Leetcode 215 Heap
House Robber III Medium Leetcode 337 Breadth-First Search, Depth-First Search
Insert Interval Medium Leetcode 57
Insert Into Sorted Circular Linked List Medium Leetcode 708 (Premium)
K Closest Points to Origin Medium Leetcode 973 Heap, Quick Select
Largest Concatenated Number From Array Medium Divide and Conquer Algorithms
Largest K Elements Medium Heap, Sliding Window Technique
Letter Combinations of a Phone Number Medium Leetcode 17 Breadth-First Search, Depth-First Search, Divide and Conquer Algorithms
List Interval Intersections Medium Leetcode 986
Longest Common Prefix Easy Leetcode 14
Longest Common Subsequence Medium Leetcode 1143 Dynamic Programming
Longest Common Substring Medium Dynamic Programming
Longest Increasing Subsequence Medium Leetcode 300 Depth-First Search, Dynamic Programming
Magic Candy Bags Medium Heap
Number of Enclaves Medium Leetcode 1020 Breadth-First Search, Depth-First Search
Sums from Weighted Words Medium Dynamic Programming
Valid Palindrome III Hard Leetcode 1216 (Premium) Two Pointer Technique, Depth-First Search