DSA
Problem Sets

156 curated problems from Blind75 & NeetCode150. 3 approaches each.

34 Easy105 Medium17 Hard
1

Two Sum

ArrayHash Table
EasyBlind75
2

Contains Duplicate

ArrayHash Table
EasyBlind75
3

Valid Anagram

StringHash Table
EasyBlind75
4

Group Anagrams

StringHash Table
MediumBlind75
5

Top K Frequent Elements

ArrayHash TableHeap
MediumBlind75
6

Product of Array Except Self

Array
MediumBlind75
7

Encode and Decode Strings

StringDesign
MediumBlind75
8

Longest Consecutive Sequence

ArrayHash Table
MediumBlind75
9

Sort Colors

ArrayTwo PointersSort
MediumBlind75
10

Valid Palindrome

StringTwo Pointers
EasyBlind75
11

Trapping Rain Water

ArrayTwo PointersStackDP
HardBlind75
12

Container With Most Water

ArrayTwo Pointers
MediumBlind75
13

Best Time to Buy and Sell Stock

ArrayDP
EasyBlind75
14

Longest Substring Without Repeating Characters

StringSliding Window
MediumBlind75
15

Minimum Window Substring

StringSliding WindowHash Table
HardBlind75
16

Sliding Window Maximum

ArrayQueueSliding WindowHeap
HardBlind75
17

Valid Parentheses

StringStack
EasyBlind75
18

Min Stack

StackDesign
MediumBlind75
19

Daily Temperatures

ArrayStackMonotonic Stack
MediumBlind75
20

Binary Search

ArrayBinary Search
EasyBlind75
21

Search a 2D Matrix

ArrayBinary Search
MediumBlind75
22

Find Minimum in Rotated Sorted Array

ArrayBinary Search
MediumBlind75
23

Reverse Linked List

Linked List
EasyBlind75
24

Merge Two Sorted Lists

Linked List
EasyBlind75
25

Linked List Cycle

Linked ListTwo Pointers
EasyBlind75
26

Reorder List

Linked ListTwo PointersStack
MediumBlind75
27

Remove Nth Node From End of List

Linked ListTwo Pointers
MediumBlind75
28

LRU Cache

Hash TableLinked ListDesign
MediumBlind75
29

Invert Binary Tree

TreeDFSBFS
EasyBlind75
30

Maximum Depth of Binary Tree

TreeDFSBFS
EasyBlind75
31

Same Tree

TreeDFSBFS
EasyBlind75
32

Subtree of Another Tree

TreeDFS
EasyBlind75
33

Binary Tree Level Order Traversal

TreeBFS
MediumBlind75
34

Validate Binary Search Tree

TreeDFSBST
MediumBlind75
35

Lowest Common Ancestor of a Binary Search Tree

TreeDFSBST
MediumBlind75
36

Binary Tree Maximum Path Sum

TreeDFS
HardBlind75
37

Serialize and Deserialize Binary Tree

TreeBFSDesign
HardBlind75
38

Implement Trie (Prefix Tree)

StringTrieDesign
MediumBlind75
39

Design Add and Search Words Data Structure

StringTrieDFSDesign
MediumBlind75
40

Kth Largest Element in an Array

ArrayHeapDivide and Conquer
MediumBlind75
41

Find Median from Data Stream

Two HeapsDesignSort
HardBlind75
42

Subsets

ArrayBacktracking
MediumBlind75
43

Combination Sum

ArrayBacktracking
MediumBlind75
44

Permutations

ArrayBacktracking
MediumBlind75
45

Number of Islands

MatrixDFSBFSUnion Find
MediumBlind75
46

Clone Graph

GraphDFSBFSHash Table
MediumBlind75
47

Pacific Atlantic Water Flow

MatrixDFSBFS
MediumBlind75
48

Course Schedule

GraphTopological SortBFSDFS
MediumBlind75
49

Graph Valid Tree

GraphDFSBFSUnion Find
MediumBlind75
50

Number of Connected Components in an Undirected Graph

GraphDFSBFSUnion Find
MediumBlind75
51

Redundant Connection

GraphUnion Find
MediumBlind75
52

Word Ladder

StringBFSHash Table
HardBlind75
53

Alien Dictionary

GraphTopological Sort
HardBlind75
54

Climbing Stairs

DPMath
EasyBlind75
55

Coin Change

ArrayDP
MediumBlind75
56

Maximum Product Subarray

ArrayDP
MediumBlind75
57

Word Break

StringDPHash Table
MediumBlind75
58

Longest Increasing Subsequence

ArrayDPBinary Search
MediumBlind75
59

House Robber

ArrayDP
MediumBlind75
60

Unique Paths

MathDP
MediumBlind75
61

Longest Common Subsequence

StringDP
MediumBlind75
62

Best Time to Buy and Sell Stock with Cooldown

ArrayDP
MediumBlind75
63

Target Sum

ArrayDP
MediumBlind75
64

Coin Change 2

ArrayDP
MediumBlind75
65

Jump Game

ArrayDPGreedy
MediumBlind75
66

Jump Game II

ArrayDPGreedy
MediumBlind75
67

Single Number

ArrayBit Manipulation
EasyBlind75
68

Number of 1 Bits

Bit Manipulation
EasyBlind75
69

Counting Bits

DPBit Manipulation
EasyBlind75
70

Reverse Bits

Bit Manipulation
EasyBlind75
71

Rotate Image

MatrixMath
MediumBlind75
72

Spiral Matrix

MatrixSimulation
MediumBlind75
73

Set Matrix Zeroes

MatrixHash Table
MediumBlind75
74

Merge Intervals

ArraySort
MediumBlind75
75

Non-overlapping Intervals

ArrayDPGreedy
MediumBlind75
76

Meeting Rooms II

ArraySortHeapGreedy
MediumBlind75
77

Valid Sudoku

ArrayHash TableMatrix
MediumNeetCode150
78

3Sum

ArrayTwo PointersSorting
MediumNeetCode150
79

Remove Element

ArrayTwo Pointers
EasyNeetCode150
80

Longest Repeating Character Replacement

Hash TableStringSliding Window
MediumNeetCode150
81

Permutation in String

Hash TableTwo PointersStringSliding Window
MediumNeetCode150
82

Evaluate Reverse Polish Notation

ArrayStackMath
MediumNeetCode150
83

Car Fleet

ArrayStackSortingGreedy
MediumNeetCode150
84

Koko Eating Bananas

ArrayBinary Search
MediumNeetCode150
85

Search in Rotated Sorted Array

ArrayBinary Search
MediumNeetCode150
86

Copy List with Random Pointer

Hash TableLinked List
MediumNeetCode150
87

Kth Smallest Element in a BST

TreeDepth-First SearchBinary Search TreeBinary Tree
MediumNeetCode150
88

Construct Binary Tree from Preorder and Inorder Traversal

ArrayHash TableDivide and ConquerTreeBinary Tree
MediumNeetCode150
89

Binary Tree Right Side View

TreeDepth-First SearchBreadth-First SearchBinary Tree
MediumNeetCode150
90

Lowest Common Ancestor of a Binary Tree

TreeDepth-First SearchBinary Tree
MediumNeetCode150
91

Kth Largest Element in a Stream

TreeDesignBinary Search TreeHeap (Priority Queue)Binary Search Tree
EasyNeetCode150
92

Last Stone Weight

ArrayHeap (Priority Queue)
EasyNeetCode150
93

K Closest Points to Origin

ArrayMathDivide and ConquerSortingHeap (Priority Queue)Geometry
MediumNeetCode150
94

Word Search

ArrayBacktrackingMatrix
MediumNeetCode150
95

Palindrome Partitioning

StringBacktracking
MediumNeetCode150
96

N-Queens

ArrayBacktracking
HardNeetCode150
97

Max Area of Island

ArrayDepth-First SearchBreadth-First SearchMatrix
MediumNeetCode150
98

Rotting Oranges

ArrayBreadth-First SearchMatrix
MediumNeetCode150
99

Surrounded Regions

Depth-First SearchBreadth-First SearchUnion FindMatrix
MediumNeetCode150
100

Longest Increasing Path in a Matrix

Depth-First SearchBreadth-First SearchGraphTopological SortDynamic ProgrammingMatrix
HardNeetCode150
101

Network Delay Time

Depth-First SearchBreadth-First SearchGraphHeap (Priority Queue)Shortest Path
MediumNeetCode150
102

Swim in Rising Water

ArrayDepth-First SearchBreadth-First SearchBinary SearchHeap (Priority Queue)MatrixUnion Find
HardNeetCode150
103

House Robber II

ArrayDynamic Programming
MediumNeetCode150
104

Decode Ways

StringDynamic Programming
MediumNeetCode150
105

Maximum Subarray

ArrayDivide and ConquerDynamic Programming
MediumNeetCode150
106

Partition Equal Subset Sum

ArrayDynamic Programming
MediumNeetCode150
107

Unique Paths II

ArrayDynamic ProgrammingMatrix
MediumNeetCode150
108

Minimum Path Sum

ArrayDynamic ProgrammingMatrix
MediumNeetCode150
109

Coin Change II

ArrayDynamic Programming
MediumNeetCode150
110

Interleaving String

StringDynamic Programming
MediumNeetCode150
111

Longest Increasing Path in a Matrix

Depth-First SearchDynamic ProgrammingMatrix
HardNeetCode150
112

Gas Station

ArrayGreedy
MediumNeetCode150
113

Valid Parenthesis String

StringDynamic ProgrammingGreedy
MediumNeetCode150
114

Insert Interval

Array
MediumNeetCode150
115

Meeting Rooms

ArraySortingGreedy
EasyNeetCode150
116

Minimum Size Subarray Sum

ArrayBinary SearchSliding WindowPrefix Sum
MediumNeetCode150
117

Generate Parentheses

StringDynamic ProgrammingBacktracking
MediumNeetCode150
118

Largest Rectangle in Histogram

ArrayStackMonotonic Stack
HardNeetCode150
119

Subarray Sum Equals K

ArrayHash TablePrefix Sum
MediumNeetCode150
120

Binary Tree Zigzag Level Order Traversal

TreeBreadth-First SearchBinary Tree
MediumNeetCode150
121

Missing Number

ArrayHash TableMathBit Manipulation
EasyNeetCode150
122

Kth Missing Positive Number

ArrayBinary Search
EasyNeetCode150
123

Next Permutation

ArrayTwo Pointers
MediumNeetCode150
124

Diameter of Binary Tree

TreeDepth-First SearchBinary Tree
EasyNeetCode150
125

Minimum Absolute Difference in BST

TreeDepth-First SearchBinary Search TreeBinary Tree
EasyNeetCode150
126

Range Sum of BST

TreeDepth-First SearchBinary Search TreeBinary Tree
EasyNeetCode150
127

Flatten Binary Tree to Linked List

Linked ListStackTreeDepth-First SearchBinary Tree
MediumNeetCode150
128

Next Greater Element I

ArrayHash TableStackMonotonic Stack
EasyNeetCode150
129

Next Greater Element II

ArrayStackMonotonic StackCircular Array
MediumNeetCode150
130

Decode String

StackRecursionString
MediumNeetCode150
131

Sum Root to Leaf Numbers

TreeDepth-First SearchBinary Tree
MediumNeetCode150
132

Binary Search Tree Iterator

StackTreeDesignBinary Search TreeBinary Tree
MediumNeetCode150
133

Asteroid Collision

ArrayStackSimulation
MediumNeetCode150
134

Longest Continuous Increasing Subsequence

Array
EasyNeetCode150
135

Design Hashmap

ArrayHash TableDesignLinked ListHash Function
EasyNeetCode150
136

Design Hashset

ArrayHash TableDesignLinked ListHash Function
EasyNeetCode150
137

Find All Anagrams in a String

Hash TableStringSliding Window
MediumNeetCode150
138

Populating Next Right Pointers in Each Node

Linked ListTreeDepth-First SearchBreadth-First SearchBinary Tree
MediumNeetCode150
139

Accounts Merge

Depth-First SearchBreadth-First SearchUnion FindGraph
MediumNeetCode150
140

Maximum Frequency Stack

Hash TableStackDesignHeap (Priority Queue)
HardNeetCode150
141

Online Stock Span

StackDesignMonotonic StackData Stream
MediumNeetCode150
142

Count of Smaller Numbers After Self

ArrayBinary SearchDivide and ConquerSegment TreeBinary Indexed TreeMerge SortOrdered Set
HardNeetCode150
143

Basic Calculator

StackRecursionMathString
HardNeetCode150
144

Expression Add Operators

MathStringBacktracking
HardNeetCode150
145

Reorganize String

Hash TableGreedyHeap (Priority Queue)String
MediumNeetCode150
146

Minimum Number of Arrows to Burst Balloons

ArrayGreedySorting
MediumNeetCode150
147

Minimum Cost to Connect Sticks

ArrayGreedyHeap (Priority Queue)
MediumNeetCode150
148

Next Greater Element III

MathTwo PointersString
MediumNeetCode150
149

Reverse Words in a String

Two PointersString
MediumNeetCode150
150

Binary Tree Paths

StringTreeDepth-First SearchBinary Tree
EasyNeetCode150
151

Design Twitter

Hash TableDesignHeap (Priority Queue)OOP
MediumNeetCode150
152

Time-Based Key-Value Store

Hash TableBinary SearchDesignData Stream
MediumNeetCode150
153

Sum of Two Integers

MathBit Manipulation
MediumNeetCode150
154

Implement Stack using Queues

StackDesignQueue
EasyNeetCode150
155

Flatten Nested List Iterator

StackDesignIterator
MediumNeetCode150
156

Search a 2D Matrix II

ArrayBinary SearchMatrixDivide and Conquer
MediumNeetCode150