1. Arrays and Strings
    1. Sliding Window
      1. Pattern + Template
      2. Fixed Window Size
        1. Fixed Window Size Template
        2. Substrings of Size K with Distinct Characters
        3. 1456. Maximum Number of Vowels in a Substring of Given Length
        4. Maximum Number of occurrences of Substring
        5. 643. Maximum Average Subarray I
        6. Maximum Points You Can Obtain from Cards
        7. Find All The Anagrams in a String
        8. Number of Sub-arrays of Size K and Average Greater than or Equal to Threshold
      3. Variable Window Size
        1. Variable Window Size Template
        2. Template to solve substring problems
        3. Longest Substring Without Repeating Window
        4. Longest Repeating Character Replacement
        5. Sliding Window Maximum
        6. Minimum Window Maximum
        7. Minimum Size Subarray Sum
        8. Minimum consecutive cards to pick
        9. Subarrays with K Different Integers
        10. Fruit Into Baskets
    2. Two Pointers
      1. 2 Sum problem
        1. Two Sum 2 - Input array is sorted - typical problem
        2. 3 Sum
        3. K-Sum
        4. Two Sum IV - Input in BST
        5. 283. Move Zeroes
        6. 1679. Max Number of K Sum Pairs
    3. 238. Product of Array Except Self
    4. 1071. Greatest Common Divisor of Strings
    5. 345. Reverse Vowels of a String
    6. 443. String Compression
    7. Majority Element - (revise) Moore Voting Algorithm
    8. Merge Intervals
  2. Prefix Sum
    1. 724. Find Pivot Index
  3. Hash Map and Set
    1. 1657. Determine if Two Strings Are Close
  4. Stack
    1. 2390. Removing Stars From a String
    2. 735. Asteroid Collision
    3. 394. Decode String
  5. Queue
  6. Linked List (TODO)
    1. Design Linked List - 707
    2. Linked List Cycle - 141
    3. Reverse a Linked List - 206
  7. Binary Tree 1
    1. is Balanced Binary Tree
    2. Diameter of a Binary Tree
    3. Binary Tree Maximum Path Sum
    4. Same Tree
    5. Symmetric Trees
    6. Traversals (#todo)
      1. Vertical Order Traversal
      2. Binary Tree Zigzag Level Order Traversal or Spiral Traversal
      3. Boundary Order Traversal 1
    7. View of Binary Tree
      1. Right View
      2. Left View
      3. Top View
      4. Bottom View
    8. Least Common Ancestor
    9. Amount of Time for Binary Tree to Be Infected
    10. Path Sum 2
    11. Flatten a binary tree
  8. Binary Search Tree
    1. Two Sum IV - Input in BST
  9. Graphs
    1. Count-the-number-of-complete-components
    2. DFS
      1. Find Eventual Safe States
    3. BFS
      1. Rotten Oranges
      2. 0-1 Matrix
    4. Detect Cycle in a graph
    5. is Graph Bipartite
    6. Dijkstra Algorithm
      1. Network Delay
    7. Bellman Ford
    8. Prims Algorithm (Greedy Algorithm) (MST Tree connecting all the edges with minimum total cost edges)
      1. Minimum cost to connect all points
    9. Topological Sort
      1. Course Schedule
      2. Course Schedule II - Just return the topologicalOrder array in the answer.
      3. Alien Dictionary
      4. Minimum Height Trees
    10. Floyd Warshall
    11. DisJoint Set
      1. Number Of Provinces
      2. Number of operations to make a network connected
      3. Accounts Merge
  10. Heap / Priority Queue
  11. Binary Search
    1. Binary Search Template
    2. Easy
      1. Sqrt(x)
      2. First Bad Version
      3. Search Insert Position
      4. Single Element in a Sorted Array
    3. Advanced Application: NOTE
      1. Capacity To Ship Packages Within D Days
      2. Split Array Largest Sum
      3. Koko Eating Bananas
      4. Minimum Number of Days to Make m Bouquets
      5. Kth Smallest Number in Multiplication Table
    4. First and Last Position Of An Element In A Sorted Array
    5. Search in Rotated Sorted Array
    6. Search in Rotated Sorted Array II
    7. Minimum in rotated sorted array
    8. Minimum in rotated sorted array II
    9. Find Minimum in Rotated Sorted Array
    10. Find Peak Element
    11. Binary Search on Answers
      1. Sqrt(x)
      2. Find the nth Root
      3. Koko Eating Bananas
  12. Backtracking
    1. SubSets
    2. SubSets-II
    3. Friends Pairing Problem
    4. Partition to K Equal Sum Subsets
    5. Maximum Score words formed by letters
    6. Combination Sum
    7. Combination Sum 2
    8. Combination Sum 4
  13. DP - 1D
    1. Climbing Stairs
    2. Frog Jump - Codestudio
    3. Minimal Cost OR Frog with K distance
    4. House Robber
    5. House Robber II
    6. Maximum Subarray
  14. DP - 2D or DP on Grids
    1. Ninja Training
    2. Unique Paths
    3. Unique Paths II
    4. Minimum Path Sum
    5. Minimum Falling Path Sum
    6. Number of Dice Rolls With Target Sum
  15. DP on Subsequences/Subsets (Elements do not have to be contiguous) !mportant: subsets may not follow the relative order but subsequences do
    1. Subset Sum Equal To K
    2. Partition equal Subset Sum
    3. Coin Change II
    4. Rod Cutting
  16. Dp on Strings
    1. Longest Common Subsequence
    2. Shortest Common SuperSequence
    3. Distinct Subsequences
    4. Edit Distance
    5. Wildcard Matching
  17. DP on Stocks
    1. Best Time to Buy and Sell Stock
    2. Best Time to Buy and Sell Stock II
  18. Bit Manipulation
  19. Trie
  20. Intervals
  21. Monotonic Stack