Fundamentals/ Prerequisites

  • Swap 2 numbers in-place
  • Iterating through an array
  • Iterating through an object
  • Using while-loop & for-loops
  • Knowledge on Time Complexity
  • Understanding on Recursions
  • Knowledge of heap, stack, queues
  • Basic operations of linkedList (How to iterate through a linkedList)
  • Concepts on DFS & BFS

Resources

Grokking Coding Patterns

  1. Hashmap & Set (Remove Duplicates, two sums)
  2. Two pointers (merge, isPalindrome)
  3. Sliding Window
  4. Top K-th frequent element ** Need heap
  5. Merge Intervals
  6. Subsets
  7. Cyclic Sort
  8. Fast & Slow Pointers (More linkedList)
  9. In-place reversal of a linkedList
  10. Tree - BFS (Level-order-traversal) ** Need Queues
  11. Tree - DFS (Depth-first-Search) ** Need Recursion
  12. Backtracking
  13. Topological Sort (Graph)
  14. Dynamic Programming
  15. Bitwise XOR
  16. Modified Binary search