Current plan is in this file - Initial Plan. For Python specific tricks, check Python Tricks Sheet.
1. Arrays and Strings
-
Arrays:
- Two Sum
- Maximum Subarray
- Merge Intervals
- Product of Array Except Self
- Rotate Array
- Best Time to Buy and Sell Stock
- Find Minimum in Rotated Sorted Array
- Contains Duplicate
- Maximum Product Subarray
-
Strings:
- Longest Substring Without Repeating Characters
- Valid Anagram
- Palindromic Substrings
- Longest Palindromic Substring
- Group Anagrams
- Minimum Window Substring
- Implement strStr() (Substring Search)
2. Linked Lists
- Reverse Linked List
- Merge Two Sorted Lists
- Linked List Cycle
- Remove Nth Node From End of List
- Intersection of Two Linked Lists
3. Trees and Graphs
-
Trees:
- 94. Binary Tree Inorder Traversal
- 98. Validate Binary Search Tree
- 104. Maximum Depth of Binary Tree
- 235. Lowest Common Ancestor of a Binary Search Tree
- Serialize and Deserialize Binary Tree
-
Graphs:
- Clone Graph
- Course Schedule
- Number of Islands
- Graph Valid Tree
- Word Ladder
4. Dynamic Programming (Less Common but Important)
-
Basic Problems:
- Climbing Stairs
- House Robber
- House Robber II
- Coin Change
- Longest Increasing Subsequence
-
Advanced Problems:
- Word Break
- Combination Sum IV
- Edit Distance
- Interleaving String
5. Sorting and Searching
-
Sorting Algorithms:
- Quick Sort
- Merge Sort
- Heap Sort
- Bubble Sort
- Selection Sort
- Insertion Sort
-
Searching:
- Binary Search
- Search in Rotated Sorted Array
- Find Peak Element
6. Backtracking
- Permutations
- Subsets
- Combination Sum
- Palindrome Partitioning
- N-Queens
7. Miscellaneous
-
Stack and Queue:
- Valid Parentheses
- Implement Stack using Queues
- Implement Queue using Stacks
- Min Stack
- Sliding Window Maximum
-
Bit Manipulation:
- Single Number
- Number of 1 Bits
- Reverse Bits
- Power of Two