Solutions and notes for the NeetCode 150 - a curated list of LeetCode problems covering fundamental patterns in data structures and algorithms.

The problems are organized by topic (arrays, trees, dynamic programming, etc.). Each solution includes Python code, complexity analysis, and notes on key insights and patterns.


Arrays & Hashing

  1. Contains Duplicate
  2. Valid Anagram
  3. Two Sum
  4. Group Anagrams
  5. Top K Frequent Elements
  6. Product of Array Except Self
  7. Valid Sudoku
  8. Encode and Decode Strings
  9. Longest Consecutive Sequence

Two Pointers

  1. Valid Palindrome
  2. Two Sum II - Input Array Is Sorted
  3. 3Sum
  4. Container With Most Water
  5. Trapping Rain Water

Sliding Window

  1. Best Time to Buy and Sell Stock
  2. Longest Substring Without Repeating Characters
  3. Longest Repeating Character Replacement
  4. Permutation in String
  5. Minimum Window Substring
  6. Sliding Window Maximum

Stack

  1. Valid Parentheses
  2. Min Stack
  3. Evaluate Reverse Polish Notation
  4. Generate Parentheses
  5. Daily Temperatures
  6. Car Fleet
  7. Largest Rectangle in Histogram
  1. Binary Search
  2. Search a 2D Matrix
  3. Koko Eating Bananas
  4. Find Minimum in Rotated Sorted Array
  5. Search in Rotated Sorted Array
  6. Time Based Key-Value Store
  7. Median of Two Sorted Arrays

Linked List

  1. Reverse Linked List
  2. Merge Two Sorted Lists
  3. Reorder List
  4. Remove Nth Node From End of List
  5. Copy List with Random Pointer
  6. Add Two Numbers
  7. Linked List Cycle
  8. Find the Duplicate Number
  9. LRU Cache
  10. Merge K Sorted Lists
  11. Reverse Nodes in K-Group

Trees

  1. Invert Binary Tree
  2. Maximum Depth of Binary Tree
  3. Diameter of Binary Tree
  4. Balanced Binary Tree
  5. Same Tree
  6. Subtree of Another Tree
  7. Lowest Common Ancestor of a Binary Search Tree
  8. Binary Tree Level Order Traversal
  9. Binary Tree Right Side View
  10. Count Good Nodes in Binary Tree
  11. Validate Binary Search Tree
  12. Kth Smallest Element in a BST
  13. Construct Binary Tree from Preorder and Inorder Traversal
  14. Binary Tree Maximum Path Sum
  15. Serialize and Deserialize Binary Tree

Tries

  1. Implement Trie (Prefix Tree)
  2. Design Add and Search Words Data Structure
  3. Word Search II

Heap / Priority Queue

  1. Kth Largest Element in a Stream
  2. Last Stone Weight
  3. K Closest Points to Origin
  4. Kth Largest Element in an Array
  5. Task Scheduler
  6. Design Twitter
  7. Find Median from Data Stream

Backtracking

  1. Subsets
  2. Combination Sum
  3. Permutations
  4. Subsets II
  5. Combination Sum II
  6. Word Search
  7. Palindrome Partitioning
  8. Letter Combinations of a Phone Number
  9. N-Queens

Graphs

  1. Number of Islands
  2. Clone Graph
  3. Max Area of Island
  4. Pacific Atlantic Water Flow
  5. Surrounded Regions
  6. Rotting Oranges
  7. Walls and Gates
  8. Course Schedule
  9. Course Schedule II
  10. Redundant Connection
  11. Number of Connected Components in an Undirected Graph
  12. Graph Valid Tree
  13. Word Ladder

Advanced Graphs

  1. Reconstruct Itinerary
  2. Min Cost to Connect All Points
  3. Network Delay Time
  4. Swim in Rising Water
  5. Alien Dictionary
  6. Cheapest Flights Within K Stops

1-D Dynamic Programming

  1. Climbing Stairs
  2. Min Cost Climbing Stairs
  3. House Robber
  4. House Robber II
  5. Longest Palindromic Substring
  6. Palindromic Substrings
  7. Decode Ways
  8. Coin Change
  9. Maximum Product Subarray
  10. Word Break
  11. Longest Increasing Subsequence
  12. Partition Equal Subset Sum

2-D Dynamic Programming

  1. Unique Paths
  2. Longest Common Subsequence
  3. Best Time to Buy and Sell Stock with Cooldown
  4. Coin Change II
  5. Target Sum
  6. Interleaving String
  7. Longest Increasing Path in a Matrix
  8. Distinct Subsequences
  9. Edit Distance
  10. Burst Balloons
  11. Regular Expression Matching

Greedy

  1. Maximum Subarray
  2. Jump Game
  3. Jump Game II
  4. Gas Station
  5. Hand of Straights
  6. Merge Triplets to Form Target Triplet
  7. Partition Labels
  8. Valid Parenthesis String

Intervals

  1. Insert Interval
  2. Merge Intervals
  3. Non-overlapping Intervals
  4. Meeting Rooms
  5. Meeting Rooms II
  6. Minimum Interval to Include Each Query

Math & Geometry

  1. Rotate Image
  2. Spiral Matrix
  3. Set Matrix Zeroes
  4. Happy Number
  5. Plus One
  6. Pow(x, n)
  7. Multiply Strings
  8. Detect Squares

Bit Manipulation

  1. Single Number
  2. Number of 1 Bits
  3. Counting Bits
  4. Reverse Bits
  5. Missing Number
  6. Sum of Two Integers
  7. Reverse Integer