Here is a difficulty and frequency distribution chart for each problem (which I got from the Internet and is very useful).
Dynamic Programming
- Edit Distance
- Maximum Subarray
- Minimum Path Sum
- Unique Paths
- Unique Paths II
- Longest Palindromic Substring
- Interleaving String
- Triangle
- Distinct Subsequences
- Decode Ways
- Palindrome Partitioning II
- Maximal Rectangle
Recursion
- N-Queens
- N-Queens II
- Balanced Binary Tree
- Binary Tree Inorder Traversal
- Binary Tree Maximum Path Sum
- Convert Sorted Array to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Flatten Binary Tree to Linked List
- Maximum Depth of Binary Tree
- Minimum Depth of Binary Tree
- Path Sum
- Permutations
- Permutations II
- Populating Next Right Pointers in Each Node
- Pow(x, n)
- Same Tree
- Subsets
- Sum Root to Leaf Numbers
- Swap Nodes in Pairs
- Symmetric Tree
- Valid Palindrome
- Validate Binary Search Tree
- Restore IP Addresses
- Combinations
- Interleaving String (dp is the best)
- Combination Sum II
- Letter Combinations of a Phone Numbers
- Word Search
- Construct Binary Tree from Inorder and Postorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal
- Generate Parentheses
- Surrounded Regions (runtime error)
- Palindrome Partitioning
- Combination Sum
- Sudoku Solver
- Unique Binary Search Trees II
Binary Search
- Search Insert Position
- Search a 2D Matrix
- Search for a Range
- Search in Rotated Sorted Array
- Sqrt(x)
Sequence
- Container With Most Water
- Count and Say
- First Missing Positive
- Implement strStr()
- Jump Game
- Jump Game II
- Length of Last Word
- Longest Common Prefix
- Longest Substring Without Repeating Characters
- Merge Sorted Array
- Palindrome Number
- Plus One
- Remove Duplicates from Sorted Array
- Remove Duplicates from Sorted Array II
- Remove Element
- Reverse Integer
- Search in Rotated Sorted Array II
- Sort Colors
- Two Sum
- 3Sum
- 3Sum Closest
- 4Sum
- Add Binary
- Longest Palindromic Substring
- Next Permutation
- Longest Valid Parentheses
- Climbing Stairs
- Permutation Sequence
- Simplify Path
- String to Integer (atoi)
- Minimum Window Substring
- Longest Consecutive Sequence
- Trapping Rain Water
- Valid Number
Linked List
- Add Two Numbers
- Convert Sorted List to Binary Search Tree
- Merge Two Sorted Lists
- Partition List
- Remove Duplicates from Sorted List
- Remove Duplicates from Sorted List II
- Remove Nth Node From End of List
- Reverse Linked List II
- Reverse Nodes in k-Group
- Rotate List
- Swap Nodes in Pairs
Stack
- Binary Tree Inorder Traversal
- Binary Tree Level Order Traversal II
- Valid Parentheses
Queue
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal II
- Populating Next Right Pointers in Each Node II
- Symmetric Tree
- Surrounded Regions
- Word Ladder
Tree
- Balanced Binary Tree
- Binary Tree Inorder Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal II
- Binary Tree Maximum Path Sum
- Convert Sorted Array to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Flatten Binary Tree to Linked List
- Maximum Depth of Binary Tree
- Minimum Depth of Binary Tree
- Path Sum
- Same Tree
- Sum Root to Leaf Numbers
- Symmetric Tree
- Validate Binary Search Tree