A comprehensive collection of algorithm solutions, system design materials, and modern C++ tutorials. Perfect for interview preparation, learning, and reference.
Organized by topic and difficulty level, with detailed solutions and explanations.
0001. Two Sum
0011. Container With Most Water
0015. 3Sum
0016. 3Sum Closest
0018. 4Sum
0027. Remove Element
0031. Next Permutation
0042. Trapping Rain Water
0045. Jump Game II
0055. Jump Game
0056. Merge Intervals
0057. Insert Interval
0066. Plus One
0075. Sort Colors
0088. Merge Sorted Array
0189. Rotate Array
0238. Product of Array Except Self
0283. Move Zeroes
0347. Top K Frequent Elements
0349. Intersection of Two Arrays
0350. Intersection of Two Arrays II
0605. Can Place Flowers
0724. Find Pivot Index
1010. Pairs of Songs With Total Durations Divisible by 60
1299. Replace Elements with Greatest Element on Right Side
1984. Minimum Difference Between Highest and Lowest of K Scores
Two Sum II - Input Array Is Sorted
0003. Longest Substring Without Repeating Characters
0005. Longest Palindromic Substring
0006. Zigzag Conversion
0012. Integer to Roman
0013. Roman to Integer
0014. Longest Common Prefix
0020. Valid Parentheses
0028. Find the Index of the First Occurrence in a String
0038. Count and Say
0043. Multiply Strings
0058. Length of Last Word
0071. Simplify Path
0125. Valid Palindrome
0205. Isomorphic Strings
0242. Valid Anagram
0290. Word Pattern
0344. Reverse String
0392. Is Subsequence
0929. Unique Email Addresses
1209. Remove All Adjacent Duplicates in String II
Add Strings
Anagram Difference
Count Binary Substrings
Decode String
Expressive Words
Fraction to Recurring Decimal
Minimum Number of Steps to Make Two Strings Anagram
Reorganize String
Reverse Words in a String III
Verifying an Alien Dictionary
Word Break
0002. Add Two Numbers
0019. Remove Nth Node From End of List
0021. Merge Two Sorted Lists
0024. Swap Nodes in Pairs
0061. Rotate List
0083. Remove Duplicates from Sorted List
0092. Reverse Linked List II
0143. Reorder List
0160. Intersection of Two Linked Lists
0203. Remove Linked List Elements
0206. Reverse Linked List
0234. Palindrome Linked List
0876. Middle of the Linked List
Linked List Cycle
Linked List Cycle II
0094. Binary Tree Inorder Traversal
0098. Validate Binary Search Tree
0100. Same Tree
0101. Symmetric Tree
0102. Binary Tree Level Order Traversal
0103. Binary Tree Zigzag Level Order Traversal
0104. Maximum Depth of Binary Tree
0105. Construct Binary Tree from Preorder and Inorder Traversal
0106. Construct Binary Tree from Inorder and Postorder Traversal
0108. Convert Sorted Array to Binary Search Tree
0110. Balanced Binary Tree
0112. Path Sum
0113. Path Sum II
0114. Flatten Binary Tree to Linked List
0117. Populating Next Right Pointers
0199. Binary Tree Right Side View
0226. Invert Binary Tree
0230. Kth Smallest Element in a BST
0236. Lowest Common Ancestor of a Binary Tree
0285. Inorder Successor in BST
0297. Serialize and Deserialize Binary Tree
0298. Binary Tree Longest Consecutive Sequence
0314. Binary Tree Vertical Order Traversal
0426. Convert Binary Search Tree to Sorted Doubly Linked List
0510. Inorder Successor in BST II
0530. Minimum Absolute Difference in BST
0543. Diameter of Binary Tree
0637. Average of Levels in Binary Tree
1530. Number of Good Leaf Nodes Pairs
1650. Lowest Common Ancestor of a Binary Tree III
Lowest Common Ancestor of a Binary Tree
Merge Two Binary Trees
Recover Binary Search Tree
Sum Root to Leaf Numbers
0017. Letter Combinations of a Phone Number
0022. Generate Parentheses
0036. Valid Sudoku
0039. Combination Sum
0040. Combination Sum II
0046. Permutations
0047. Permutations II
0077. Combinations
0079. Word Search
0212. Word Search II
Combinations
0133. Clone Graph
0200. Number of Islands
0207. Course Schedule
0261. Graph Valid Tree
0329. Longest Increasing Path in a Matrix
0399. Evaluate Division
0433. Minimum Genetic Mutation
0694. Number of Distinct Islands
0909. Snakes and Ladders
1091. Shortest Path in Binary Matrix
Flood Fill
Max Area of Island
Minimum Knight Moves
Rotting Oranges
0033. Search in Rotated Sorted Array
0034. Find First and Last Position of Element in Sorted Array
0035. Search Insert Position
0127. Word Ladder
0374. Guess Number Higher or Lower
1268. Search Suggestions System
Binary Search
Find Peak Element
First Bad Version
0045. Jump Game II
0055. Jump Game
0062. Unique Paths
0118. Pascal's Triangle
0119. Pascal's Triangle II
0121. Best Time to Buy and Sell Stock
0122. Best Time to Buy and Sell Stock II
0130. Surrounded Regions
1048. Longest String Chain
1930. Unique Length-3 Palindromic Subsequences
Maximum Subarray
Minimum Moves to Equal Array Elements
Minimum Size Subarray Sum
0049. Group Anagrams
0128. Longest Consecutive Sequence
0136. Single Number
0169. Majority Element
0217. Contains Duplicate
0219. Contains Duplicate II
0243. Shortest Word Distance
0268. Missing Number
0448. Find All Numbers Disappeared in an Array
0496. Next Greater Element I
0560. Subarray Sum Equals K
1189. Maximum Number of Balloons
1207. Unique Number of Occurrences
Count Duplicate Elements
Minimum Deletions to Make Character Frequencies Unique
Subdomain Visit Count
0007. Reverse Integer
0009. Palindrome Number
0050. Pow(x, n)
0163. Missing Ranges
0228. Summary Ranges
0367. Valid Perfect Square
0441. Arranging Coins
0682. Baseball Game
0923. 3Sum With Multiplicity
Sum of Square Numbers
0048. Rotate Image
0054. Spiral Matrix
0059. Spiral Matrix II
0329. Longest Increasing Path in a Matrix
0542. 01 Matrix
0554. Brick Wall
2133. Check if Every Row and Column Contains All Numbers
Search a 2D Matrix II
0146. LRU Cache
0225. Implement Stack using Queues
0252. Meeting Rooms
0380. Insert Delete GetRandom O(1)
0353. SnakeGame
Accounts Merge
Design Linked List
Find Duplicate File in System
Kth Largest Element in an Array
Meeting Rooms II
Time Based Key-Value Store
Top K Frequent Words
Beginner Algorithm Problems
0001. Sum of positive
0002. Return Negative
0003. Opposite number
0004. Remove First and Last Character
0005. Reversed String
0006. String repeat
0026. Replace Character
0027. Consecutive Duplicates with Count
0028. toCamelCase
0029. Dig pow
0030. Equal Sides Of An Array
0031. Match Strings
07. Find the smallest integer in the array
08. Square Every Digit
09. Remove all vowels from string
10. Highest and Lowest
11. Descending Order
12. Mumbling
13. Get the middle string
14. Check if a number is square
15. Isograms
16. Exes and Ohs
17. Jaden Casing Strings
18. Length of the shortest word in a string
19. Reverse a string from a given index
20. Credit card mask
21. Two to one
22. Categorize New Member
23. Find the odd int
24. Sum of Digits
25. Stop gninnipS My sdroW
Master system design principles and real-world architecture patterns. Perfect for technical interview preparation and building scalable systems.
Foundations & Interview Preparation
001. Introduction to System Design
What is a System Design Interview?
How to Prepare for Success
How to Perform Well
Practical case studies and real-world system design examples.
001. Tiny URL
002. Design a Parking Lot System
003. Design a Fitness Tracking App
004. Design a Weather Reporting System
005. Design Pastebin
006. Design a Nested Comments System
007. Design an Online Presence Indicator Service
Comprehensive C++ tutorials and notes covering modern C++ features and best practices.
001. The main function
002. Constants in C++
003. Variables in C++
Essential concepts for web development interviews and mastering web fundamentals.
1. What happens when you type in a URL
2. GET vs POST
3. What can we do to improve a website's performance?
4. HTML5 offline storage mechanism
5. Common time and space-complexity
6. What has been deprecated, and what is new on HTML5?
7. How the DOM really works?
8. Inline elements, Block elements, and what are the differences?
9. Several ways to call a function
10. A brief introduction of the differences between "src" and "href"
11. A brief introduction of Call, Apply, Bind
12. Time and space complexity for common sorting algorithm
13. What is the difference between display:none and visibility:hidden style?
14. What is BFC(Block Formatting Context)
1. this keyword
2. Bubbling and Capturing
3. Execution Context
4. Higher Order Function
5. Event Loop
6. Closures
7. Throttling and Debouncing
8. Promises
9. Consuming Promises
10. Controlled Components
11. ExpenseTracker
12. Receive input
13. Accordion
14. ModalBox
15. Drum Kit
16. Mini Clock
17. Playing with Variables
18. Implement Curry()
19. implement Array.prototype.flat()
20. Implement curry() with placeholder support
Distributed Systems Fundamentals - Web Basics
If you find errors in the content of this project, don't hesitate to submit issues or pull requests on GitHub for corrections. Contributions are always welcome!
This project is open source and available for educational purposes.