- 📚 Complete DSA Problem List
- 📖 Table of Contents
- 🎯 How to Use This List
- 🟢 Basic Programming & Arithmetic
- 🟡 Control Flow & Decision Making
- 🟠 Loops, Functions & Recursion
- 🔵 Arrays & Matrices
- 🟣 Strings & Pattern Matching
- 🔴 Searching & Sorting
- 🟤 Linked Lists
- ⚫ Stacks & Queues
- 🟩 Trees & Binary Search Trees
- 🌐 Graphs
- 🟦 Dynamic Programming
- 🔺 Heaps & Priority Queues
- #️⃣ Hashing & Hash Tables
- 🔢 Bit Manipulation
- 🌟 Advanced Data Structures
- 🎯 Curated Problem Sheets
- 📈 Difficulty Distribution
- 🎓 How to Use This List Effectively
- 🔍 Problem Solving Tips
- 📝 Contributing New Problems
- ⚡ Quick Links
| Symbol | Meaning |
|---|---|
| 🟢 | Easy |
| 🟡 | Medium |
| 🔴 | Hard |
| 🔗 | LeetCode Link Available |
| ⭐ | Highly Recommended |
| 🎯 | Interview Favorite |
- Create an Issue: For the problem you want to solve (mention problem number and language)
- Wait for Assignment: A maintainer will assign the issue to you
- Start Coding: Only after assignment
- Submit PR: Link your PR to the issue
Fundamental operations and programming concepts
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q1 | Hello World Program | 🟢 | - | Basics |
| Q2 | Sum of Two Numbers | 🟢 | - | Arithmetic |
| Q3 | Area of Circle | 🟢 | - | Math |
| Q4 | Simple Interest Calculator | 🟢 | - | Math |
| Q5 | Celsius to Fahrenheit Conversion | 🟢 | - | Math |
| Q6 | Swap Two Numbers (with/without temp) | 🟢 | - | Logic |
| Q7 | Check Even or Odd | 🟢 | - | Basics |
| Q8 | Find Maximum of Three Numbers | 🟢 | - | Logic |
| Q9 | Calculate Power (a^b) | 🟢 | 🔗 Pow(x, n) | Math |
Conditionals and logical operations
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q10 | Check Positive, Negative or Zero | 🟢 | - | Conditions |
| Q11 | Grade Calculator (A-F) | 🟢 | - | If-Else |
| Q12 | Find Largest of Three Numbers | 🟢 | - | Logic |
| Q13 | Check Vowel or Consonant | 🟢 | - | Characters |
| Q14 | Simple Calculator (+, -, *, /) | 🟢 | - | Switch Case |
| Q15 | Leap Year Checker | 🟢 | - | Logic |
| Q16 | Check Triangle Validity | 🟢 | 🔗 Valid Triangle Number | Math |
Iteration, function design, and recursive thinking
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q17 | Print Numbers 1 to N | 🟢 | - | Loops |
| Q18 | Sum of N Natural Numbers | 🟢 | - | Math |
| Q19 | Factorial of a Number | 🟢 | 🔗 Factorial Trailing Zeroes | Recursion |
| Q20 | Fibonacci Series | 🟢 | 🔗 Fibonacci Number | ⭐ Recursion, DP |
| Q21 | Check Prime Number | 🟢 | 🔗 Count Primes | Math |
| Q22 | Print Prime Numbers in Range | 🟢 | - | Loops |
| Q23 | Sum of Digits | 🟢 | 🔗 Add Digits | Math |
| Q24 | Reverse a Number | 🟢 | 🔗 Reverse Integer | 🎯 Math |
| Q25 | Check Palindrome Number | 🟢 | 🔗 Palindrome Number | ⭐ Logic |
| Q26 | Check Armstrong Number | 🟢 | - | Math |
| Q27 | LCM and GCD | 🟢 | - | Math |
| Q28 | Print Multiplication Table | 🟢 | - | Loops |
| Q29 | Count Digits in a Number | 🟢 | - | Math |
| Q30 | Binary to Decimal Conversion | 🟢 | - | Number System |
| Q31 | Decimal to Binary Conversion | 🟢 | - | Number System |
| Q32 | Print All Divisors | 🟢 | - | Math |
| Q33 | Perfect Number Checker | 🟢 | 🔗 Perfect Number | Math |
| Q34 | Tower of Hanoi | 🟡 | - | Recursion |
| Q35 | Power Using Recursion | 🟢 | 🔗 Pow(x, n) | Recursion |
| Q36 | Sum of Array using Recursion | 🟢 | - | Recursion |
| Q37 | Print Pattern (Stars/Numbers) | 🟢 | - | Loops |
| Q38 | Print Pyramid Pattern | 🟢 | - | Loops |
| Q39 | Print Diamond Pattern | 🟢 | - | Loops |
| Q40 | Print Floyd's Triangle | 🟢 | - | Patterns |
| Q41 | Print Pascal's Triangle | 🟡 | 🔗 Pascal's Triangle | ⭐ Arrays, Math |
| Q42 | Sieve of Eratosthenes | 🟡 | 🔗 Count Primes | Math, Array |
Array manipulation and matrix operations
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q43 | Find Sum of Array Elements | 🟢 | - | Arrays |
| Q44 | Find Largest Element in Array | 🟢 | - | Arrays |
| Q45 | Find Smallest Element in Array | 🟢 | - | Arrays |
| Q46 | Reverse an Array | 🟢 | 🔗 Reverse String | Arrays |
| Q47 | Count Even and Odd Numbers | 🟢 | - | Arrays |
| Q48 | Linear Search | 🟢 | - | Searching |
| Q49 | Binary Search | 🟢 | 🔗 Binary Search | ⭐ 🎯 Searching |
| Q50 | Find Second Largest Element | 🟢 | - | Arrays |
| Q51 | Remove Duplicates from Sorted Array | 🟢 | 🔗 Remove Duplicates | ⭐ 🎯 Two Pointers |
| Q52 | Rotate Array | 🟡 | 🔗 Rotate Array | ⭐ Arrays |
| Q53 | Move Zeros to End | 🟢 | 🔗 Move Zeroes | ⭐ 🎯 Two Pointers |
| Q54 | Find Missing Number | 🟢 | 🔗 Missing Number | ⭐ Math, Arrays |
| Q55 | Two Sum Problem | 🟢 | 🔗 Two Sum | ⭐ 🎯 Hashing |
| Q56 | Three Sum Problem | 🟡 | 🔗 3Sum | 🎯 Two Pointers |
| Q57 | Four Sum Problem | 🟡 | 🔗 4Sum | Two Pointers |
| Q58 | Maximum Subarray Sum (Kadane's) | 🟡 | 🔗 Maximum Subarray | ⭐ 🎯 DP |
| Q59 | Best Time to Buy and Sell Stock | 🟢 | 🔗 Best Time to Buy and Sell Stock | ⭐ 🎯 Arrays |
| Q60 | Container With Most Water | 🟡 | 🔗 Container With Most Water | ⭐ 🎯 Two Pointers |
| Q61 | Product of Array Except Self | 🟡 | 🔗 Product of Array Except Self | ⭐ 🎯 Arrays |
| Q62 | Majority Element | 🟢 | 🔗 Majority Element | ⭐ Moore's Voting |
| Q63 | Sort Colors (Dutch National Flag) | 🟡 | 🔗 Sort Colors | ⭐ Two Pointers |
| Q64 | Merge Sorted Arrays | 🟢 | 🔗 Merge Sorted Array | 🎯 Two Pointers |
| Q65 | Find Duplicate Number | 🟡 | 🔗 Find the Duplicate Number | ⭐ Floyd's Cycle |
| Q66 | Set Matrix Zeroes | 🟡 | 🔗 Set Matrix Zeroes | 🎯 Matrix |
| Q67 | Spiral Matrix | 🟡 | 🔗 Spiral Matrix | ⭐ 🎯 Matrix |
| Q68 | Rotate Matrix 90 Degrees | 🟡 | 🔗 Rotate Image | 🎯 Matrix |
| Q69 | Search in 2D Matrix | 🟡 | 🔗 Search a 2D Matrix | Binary Search |
| Q70 | Merge Intervals | 🟡 | 🔗 Merge Intervals | ⭐ 🎯 Sorting |
String processing and algorithms
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q71 | String Length (without library) | 🟢 | - | Strings |
| Q72 | Reverse a String | 🟢 | 🔗 Reverse String | Strings |
| Q73 | Check Palindrome String | 🟢 | 🔗 Valid Palindrome | ⭐ Strings |
| Q74 | Count Vowels and Consonants | 🟢 | - | Strings |
| Q75 | Compare Two Strings | 🟢 | - | Strings |
| Q76 | Concatenate Strings | 🟢 | - | Strings |
| Q77 | Count Words in String | 🟢 | - | Strings |
| Q78 | Remove Spaces from String | 🟢 | - | Strings |
| Q79 | Convert to Uppercase/Lowercase | 🟢 | - | Strings |
| Q80 | Check Anagram | 🟢 | 🔗 Valid Anagram | ⭐ 🎯 Hashing |
| Q81 | First Non-Repeating Character | 🟢 | 🔗 First Unique Character | ⭐ Hashing |
| Q82 | Longest Substring Without Repeating Characters | 🟡 | 🔗 Longest Substring Without Repeating | ⭐ 🎯 Sliding Window |
| Q83 | String to Integer (atoi) | 🟡 | 🔗 String to Integer (atoi) | 🎯 Strings |
| Q84 | Longest Common Prefix | 🟢 | 🔗 Longest Common Prefix | Strings |
| Q85 | Group Anagrams | 🟡 | 🔗 Group Anagrams | ⭐ Hashing |
| Q86 | Valid Parentheses | 🟢 | 🔗 Valid Parentheses | ⭐ 🎯 Stack |
| Q87 | Longest Palindromic Substring | 🟡 | 🔗 Longest Palindromic Substring | ⭐ 🎯 DP |
| Q88 | Implement strStr() | 🟡 | 🔗 Find Index of First Occurrence | Pattern Matching |
| Q89 | Count and Say | 🟡 | 🔗 Count and Say | Strings |
| Q90 | KMP Pattern Matching | 🔴 | - | ⭐ Pattern Matching |
Classic search and sort algorithms
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q91 | Linear Search | 🟢 | - | Searching |
| Q92 | Binary Search | 🟢 | 🔗 Binary Search | ⭐ Searching |
| Q93 | Search in Rotated Sorted Array | 🟡 | 🔗 Search in Rotated Array | ⭐ 🎯 Binary Search |
| Q94 | Find First and Last Position | 🟡 | 🔗 Find First and Last Position | 🎯 Binary Search |
| Q95 | Search Insert Position | 🟢 | 🔗 Search Insert Position | Binary Search |
| Q96 | Bubble Sort | 🟢 | - | ⭐ Sorting |
| Q97 | Selection Sort | 🟢 | - | ⭐ Sorting |
| Q98 | Insertion Sort | 🟢 | - | ⭐ Sorting |
| Q99 | Merge Sort | 🟡 | 🔗 Sort an Array | ⭐ 🎯 Sorting |
| Q100 | Quick Sort | 🟡 | 🔗 Sort an Array | ⭐ 🎯 Sorting |
| Q101 | Heap Sort | 🟡 | - | ⭐ Sorting |
| Q102 | Counting Sort | 🟢 | - | Sorting |
| Q103 | Radix Sort | 🟡 | - | Sorting |
| Q104 | Find Peak Element | 🟡 | 🔗 Find Peak Element | Binary Search |
| Q105 | Kth Largest Element | 🟡 | 🔗 Kth Largest Element | ⭐ 🎯 Heap, Quick Select |
Single, double, and circular linked lists
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q106 | Create and Traverse Linked List | 🟢 | - | Linked List |
| Q107 | Insert at Beginning | 🟢 | - | Linked List |
| Q108 | Insert at End | 🟢 | - | Linked List |
| Q109 | Insert at Position | 🟢 | - | Linked List |
| Q110 | Delete from Beginning | 🟢 | - | Linked List |
| Q111 | Delete from End | 🟢 | - | Linked List |
| Q112 | Delete from Position | 🟢 | - | Linked List |
| Q113 | Search in Linked List | 🟢 | - | Linked List |
| Q114 | Reverse Linked List | 🟢 | 🔗 Reverse Linked List | ⭐ 🎯 Linked List |
| Q115 | Find Middle of Linked List | 🟢 | 🔗 Middle of Linked List | ⭐ Two Pointers |
| Q116 | Detect Cycle in Linked List | 🟢 | 🔗 Linked List Cycle | ⭐ 🎯 Floyd's Cycle |
| Q117 | Find Cycle Starting Point | 🟡 | 🔗 Linked List Cycle II | ⭐ Floyd's Cycle |
| Q118 | Remove Nth Node from End | 🟡 | 🔗 Remove Nth Node From End | ⭐ 🎯 Two Pointers |
| Q119 | Merge Two Sorted Lists | 🟢 | 🔗 Merge Two Sorted Lists | ⭐ 🎯 Linked List |
| Q120 | Palindrome Linked List | 🟢 | 🔗 Palindrome Linked List | ⭐ Linked List |
| Q121 | Intersection of Two Linked Lists | 🟢 | 🔗 Intersection of Two Linked Lists | ⭐ Linked List |
| Q122 | Add Two Numbers (Lists) | 🟡 | 🔗 Add Two Numbers | ⭐ 🎯 Linked List |
| Q123 | Sort Linked List | 🟡 | 🔗 Sort List | 🎯 Merge Sort |
| Q124 | Remove Duplicates from Sorted List | 🟢 | 🔗 Remove Duplicates from Sorted List | Linked List |
| Q125 | Copy List with Random Pointer | 🟡 | 🔗 Copy List with Random Pointer | 🎯 Linked List |
LIFO and FIFO data structures
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q126 | Implement Stack using Array | 🟢 | - | Stack |
| Q127 | Implement Stack using Linked List | 🟢 | - | Stack |
| Q128 | Implement Queue using Array | 🟢 | - | Queue |
| Q129 | Implement Queue using Linked List | 🟢 | - | Queue |
| Q130 | Valid Parentheses | 🟢 | 🔗 Valid Parentheses | ⭐ 🎯 Stack |
| Q131 | Implement Stack using Queues | 🟢 | 🔗 Implement Stack using Queues | Stack, Queue |
| Q132 | Implement Queue using Stacks | 🟢 | 🔗 Implement Queue using Stacks | Stack, Queue |
| Q133 | Next Greater Element | 🟡 | 🔗 Next Greater Element I | ⭐ Stack |
| Q134 | Largest Rectangle in Histogram | 🔴 | 🔗 Largest Rectangle in Histogram | ⭐ 🎯 Stack |
| Q135 | Min Stack | 🟡 | 🔗 Min Stack | ⭐ 🎯 Stack Design |
| Q136 | Daily Temperatures | 🟡 | 🔗 Daily Temperatures | ⭐ Stack |
| Q137 | Evaluate Reverse Polish Notation | 🟡 | 🔗 Evaluate Reverse Polish Notation | Stack |
| Q138 | Sliding Window Maximum | 🔴 | 🔗 Sliding Window Maximum | ⭐ 🎯 Deque |
Binary trees, BST, and traversals
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q139 | Create Binary Tree | 🟢 | - | Trees |
| Q140 | Inorder Traversal | 🟢 | 🔗 Binary Tree Inorder Traversal | ⭐ Trees |
| Q141 | Preorder Traversal | 🟢 | 🔗 Binary Tree Preorder Traversal | ⭐ Trees |
| Q142 | Postorder Traversal | 🟢 | 🔗 Binary Tree Postorder Traversal | ⭐ Trees |
| Q143 | Level Order Traversal | 🟡 | 🔗 Binary Tree Level Order Traversal | ⭐ 🎯 BFS |
| Q144 | Maximum Depth of Binary Tree | 🟢 | 🔗 Maximum Depth of Binary Tree | ⭐ 🎯 Trees |
| Q145 | Invert Binary Tree | 🟢 | 🔗 Invert Binary Tree | ⭐ 🎯 Trees |
| Q146 | Same Tree | 🟢 | 🔗 Same Tree | Trees |
| Q147 | Symmetric Tree | 🟢 | 🔗 Symmetric Tree | ⭐ Trees |
| Q148 | Path Sum | 🟢 | 🔗 Path Sum | Trees |
| Q149 | Diameter of Binary Tree | 🟢 | 🔗 Diameter of Binary Tree | ⭐ 🎯 Trees |
| Q150 | Lowest Common Ancestor (BST) | 🟡 | 🔗 Lowest Common Ancestor of BST | ⭐ 🎯 BST |
| Q151 | Validate Binary Search Tree | 🟡 | 🔗 Validate Binary Search Tree | ⭐ 🎯 BST |
| Q152 | Kth Smallest Element in BST | 🟡 | 🔗 Kth Smallest Element in BST | ⭐ 🎯 BST |
| Q153 | Construct Binary Tree from Traversals | 🟡 | 🔗 Construct Binary Tree | 🎯 Trees |
| Q154 | Binary Tree Right Side View | 🟡 | 🔗 Binary Tree Right Side View | ⭐ Trees |
| Q155 | Serialize and Deserialize Binary Tree | 🔴 | 🔗 Serialize and Deserialize Binary Tree | 🎯 Trees |
| Q156 | Binary Tree Maximum Path Sum | 🔴 | 🔗 Binary Tree Maximum Path Sum | ⭐ 🎯 Trees |
Graph traversal and algorithms
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q157 | Create Graph (Adjacency List/Matrix) | 🟢 | - | Graphs |
| Q158 | BFS Traversal | 🟢 | - | ⭐ BFS |
| Q159 | DFS Traversal | 🟢 | - | ⭐ DFS |
| Q160 | Number of Islands | 🟡 | 🔗 Number of Islands | ⭐ 🎯 DFS/BFS |
| Q161 | Clone Graph | 🟡 | 🔗 Clone Graph | 🎯 DFS/BFS |
| Q162 | Course Schedule | 🟡 | 🔗 Course Schedule | ⭐ 🎯 Topological Sort |
| Q163 | Course Schedule II | 🟡 | 🔗 Course Schedule II | 🎯 Topological Sort |
| Q164 | Pacific Atlantic Water Flow | 🟡 | 🔗 Pacific Atlantic Water Flow | DFS/BFS |
| Q165 | Word Ladder | 🔴 | 🔗 Word Ladder | 🎯 BFS |
| Q166 | Dijkstra's Shortest Path | 🟡 | 🔗 Network Delay Time | ⭐ 🎯 Graph |
| Q167 | Bellman-Ford Algorithm | 🟡 | - | ⭐ Graph |
| Q168 | Floyd-Warshall Algorithm | 🟡 | - | Graph |
| Q169 | Detect Cycle in Directed Graph | 🟡 | - | DFS |
| Q170 | Detect Cycle in Undirected Graph | 🟡 | - | DFS/Union-Find |
| Q171 | Minimum Spanning Tree (Prim's) | 🟡 | - | ⭐ Graph |
| Q172 | Minimum Spanning Tree (Kruskal's) | 🟡 | - | ⭐ Union-Find |
| Q173 | Graph Coloring Problem | 🔴 | - | Backtracking |
Memoization and tabulation techniques
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q174 | Fibonacci (DP) | 🟢 | 🔗 Fibonacci Number | ⭐ DP |
| Q175 | Climbing Stairs | 🟢 | 🔗 Climbing Stairs | ⭐ 🎯 DP |
| Q176 | House Robber | 🟡 | 🔗 House Robber | ⭐ 🎯 DP |
| Q177 | House Robber II | 🟡 | 🔗 House Robber II | 🎯 DP |
| Q178 | Coin Change | 🟡 | 🔗 Coin Change | ⭐ 🎯 DP |
| Q179 | Longest Increasing Subsequence | 🟡 | 🔗 Longest Increasing Subsequence | ⭐ 🎯 DP |
| Q180 | Longest Common Subsequence | 🟡 | 🔗 Longest Common Subsequence | ⭐ 🎯 DP |
| Q181 | Edit Distance | 🔴 | 🔗 Edit Distance | ⭐ 🎯 DP |
| Q182 | 0/1 Knapsack Problem | 🟡 | - | ⭐ DP |
| Q183 | Unbounded Knapsack | 🟡 | 🔗 Coin Change 2 | DP |
| Q184 | Partition Equal Subset Sum | 🟡 | 🔗 Partition Equal Subset Sum | ⭐ DP |
| Q185 | Palindromic Substrings | 🟡 | 🔗 Palindromic Substrings | DP |
| Q186 | Word Break | 🟡 | 🔗 Word Break | ⭐ 🎯 DP |
| Q187 | Decode Ways | 🟡 | 🔗 Decode Ways | 🎯 DP |
| Q188 | Unique Paths | 🟡 | 🔗 Unique Paths | ⭐ DP |
| Q189 | Unique Paths II | 🟡 | 🔗 Unique Paths II | DP |
| Q190 | Minimum Path Sum | 🟡 | 🔗 Minimum Path Sum | ⭐ DP |
| Q191 | Triangle | 🟡 | 🔗 Triangle | DP |
| Q192 | Maximum Product Subarray | 🟡 | 🔗 Maximum Product Subarray | ⭐ 🎯 DP |
| Q193 | Jump Game | 🟡 | 🔗 Jump Game | ⭐ Greedy/DP |
| Q194 | Jump Game II | 🟡 | 🔗 Jump Game II | 🎯 Greedy/DP |
| Q195 | Longest Palindromic Subsequence | 🟡 | 🔗 Longest Palindromic Subsequence | DP |
| Q196 | Matrix Chain Multiplication | 🔴 | - | ⭐ DP |
| Q197 | Egg Dropping Problem | 🔴 | 🔗 Super Egg Drop | DP |
| Q198 | Burst Balloons | 🔴 | 🔗 Burst Balloons | 🎯 DP |
| Q199 | Regular Expression Matching | 🔴 | 🔗 Regular Expression Matching | 🎯 DP |
| Q200 | Wildcard Matching | 🔴 | 🔗 Wildcard Matching | 🎯 DP |
Heap data structure and applications
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q201 | Implement Min Heap | 🟢 | - | ⭐ Heap |
| Q202 | Implement Max Heap | 🟢 | - | ⭐ Heap |
| Q203 | Kth Largest Element | 🟡 | 🔗 Kth Largest Element | ⭐ 🎯 Heap |
| Q204 | Top K Frequent Elements | 🟡 | 🔗 Top K Frequent Elements | ⭐ 🎯 Heap |
| Q205 | Merge K Sorted Lists | 🔴 | 🔗 Merge k Sorted Lists | ⭐ 🎯 Heap |
| Q206 | Find Median from Data Stream | 🔴 | 🔗 Find Median from Data Stream | ⭐ 🎯 Heap Design |
| Q207 | Task Scheduler | 🟡 | 🔗 Task Scheduler | 🎯 Heap, Greedy |
| Q208 | Kth Smallest Element in Sorted Matrix | 🟡 | 🔗 Kth Smallest Element | Heap |
Hash table implementation and problems
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q209 | Implement Hash Table | 🟢 | - | ⭐ Hashing |
| Q210 | Two Sum | 🟢 | 🔗 Two Sum | ⭐ 🎯 Hashing |
| Q211 | Group Anagrams | 🟡 | 🔗 Group Anagrams | ⭐ Hashing |
| Q212 | Valid Anagram | 🟢 | 🔗 Valid Anagram | ⭐ Hashing |
| Q213 | Contains Duplicate | 🟢 | 🔗 Contains Duplicate | Hashing |
| Q214 | Longest Consecutive Sequence | 🟡 | 🔗 Longest Consecutive Sequence | ⭐ 🎯 Hashing |
| Q215 | Subarray Sum Equals K | 🟡 | 🔗 Subarray Sum Equals K | ⭐ 🎯 Prefix Sum |
| Q216 | LRU Cache | 🟡 | 🔗 LRU Cache | ⭐ 🎯 Design |
| Q217 | LFU Cache | 🔴 | 🔗 LFU Cache | 🎯 Design |
Bitwise operations and tricks
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q218 | Count Set Bits | 🟢 | 🔗 Number of 1 Bits | ⭐ Bits |
| Q219 | Check if Power of Two | 🟢 | 🔗 Power of Two | Bits |
| Q220 | Single Number | 🟢 | 🔗 Single Number | ⭐ 🎯 Bits |
| Q221 | Single Number II | 🟡 | 🔗 Single Number II | Bits |
| Q222 | Single Number III | 🟡 | 🔗 Single Number III | Bits |
| Q223 | Reverse Bits | 🟢 | 🔗 Reverse Bits | Bits |
| Q224 | Missing Number | 🟢 | 🔗 Missing Number | ⭐ Bits |
| Q225 | Sum of Two Integers | 🟡 | 🔗 Sum of Two Integers | 🎯 Bits |
| Q226 | Counting Bits | 🟢 | 🔗 Counting Bits | ⭐ Bits, DP |
Tries, segment trees, and more
| # | Problem | Difficulty | LeetCode | Tags |
|---|---|---|---|---|
| Q227 | Implement Trie (Prefix Tree) | 🟡 | 🔗 Implement Trie | ⭐ 🎯 Trie |
| Q228 | Add and Search Word | 🟡 | 🔗 Design Add and Search Words | 🎯 Trie |
| Q229 | Word Search II | 🔴 | 🔗 Word Search II | ⭐ 🎯 Trie, Backtracking |
| Q230 | Longest Word in Dictionary | 🟡 | 🔗 Longest Word in Dictionary | Trie |
| Q231 | Disjoint Set Union (Union-Find) | 🟡 | - | ⭐ Union-Find |
| Q232 | Number of Connected Components | 🟡 | 🔗 Number of Connected Components | Union-Find |
| Q233 | Redundant Connection | 🟡 | 🔗 Redundant Connection | Union-Find |
| Q234 | Segment Tree (Range Query) | 🔴 | 🔗 Range Sum Query - Mutable | ⭐ Segment Tree |
| Q235 | Fenwick Tree (Binary Indexed Tree) | 🔴 | - | ⭐ BIT |
| Q236 | Suffix Array | 🔴 | - | String |
Looking for structured learning paths? Check out these curated problem sheets:
180+ problems covering all DSA topics for placement preparation
Curated by Raj Vikramaditya (Striver) - Perfect for interview preparation
150 most important LeetCode problems with video explanations
Organized by topic with detailed video solutions
75 essential LeetCode problems for technical interviews
Most commonly asked questions by top tech companies
Problems organized by common patterns and techniques
14 essential patterns covering 150+ problems
Curated list with video explanations and multiple solutions
Includes coding interview tips and space-time complexity analysis
|
Structured 30-day, 50-day, and 75-day study plans |
Complete guide to tech interviews |
Competitive programming practice |
🟢 Easy Problems: 90
🟡 Medium Problems: 115
🔴 Hard Problems: 31
─────────────────────────
📊 Total: 236 Problems
- Start with Basic Programming & Arithmetic (Q1-Q9)
- Move to Control Flow (Q10-Q16)
- Master Loops and Recursion (Q17-Q42)
- Practice Arrays thoroughly (Q43-Q70)
- Learn Strings (Q71-Q90)
- Master Searching & Sorting algorithms
- Deep dive into Linked Lists
- Learn Stacks & Queues
- Start with Trees fundamentals
- Begin Dynamic Programming basics
- Master Graphs and all traversal techniques
- Complete Advanced DP problems
- Learn Advanced Data Structures (Tries, Segment Trees)
- Practice Hard problems from each category
- Follow curated sheets for interview prep
- ✅ Read the problem carefully and understand constraints
- ✅ Think about edge cases before coding
- ✅ Start with brute force, then optimize
- ✅ Analyze time and space complexity
- ✅ Test with multiple test cases
- ✅ Comment your code for clarity
- 📖 GeeksforGeeks - Detailed explanations
- 🎥 Abdul Bari's YouTube - Algorithm concepts
- 🎥 NeetCode YouTube - Problem walkthroughs
- 🎥 Striver's YouTube - Complete DSA course
- 📚 LeetCode Discuss - Community solutions
Want to add a problem to this list?
- Check for duplicates - Ensure the problem isn't already listed
- Follow the format - Use the table structure above
- Include details - Problem name, difficulty, LeetCode link (if available), and tags
- Submit via PR - Create a pull request with your additions
| Resource | Link |
|---|---|
| 📖 Main README | View |
| 🤝 Contributing Guide | View |
| 📊 Contributors List | View |
| 🐛 Report Issue | Create Issue |
| 🌟 Star History | View |
Pick a Problem | Create Issue | Read Guidelines
Happy Coding! 💻✨
Curated & documented with ❤️ by Ayush Hardeniya