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

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