This repository contains solutions to the Leetcode Top Interview 150 problems.
These problems are commonly asked in technical interviews and cover a wide range of topics, including data structures, algorithms, and problem-solving techniques.
Show some ❤️ by starring ⭐ this repository if you like it!
- What is Leetcode? 🧑💻
- About the Top Interview 150 Collection Questions 🏆
- Tips for Solving Problems 💡
- Repository Structure 🗂️
- How to Use This Repository 🚀
- Resources 📚
Leetcode is a popular online platform that provides a collection of coding challenges. Software engineers and interview candidates widely use it to practice coding skills and prepare for technical interviews. Leetcode offers many problems to solve, classified by difficulty level and topic.
The Top Interview 150 collection on Leetcode is a curated set of 150 interview questions that top tech companies frequently ask. These questions are carefully selected to cover essential concepts and algorithms that interviewers expect candidates to be familiar with.
Id | Problem | Difficulty | Status |
---|---|---|---|
Array / String |
|||
1 | Merge Sorted Array | Easy | ✅ |
2 | Remove Element | Easy | ✅ |
3 | Remove Duplicates from Sorted Array | Easy | ✅ |
4 | Remove Duplicates from Sorted Array II | Medium | ✅ |
5 | Majority Element | Easy | ✅ |
6 | Rotate Array | Medium | ✅ |
7 | Best Time to Buy and Sell Stock | Easy | |
8 | Best Time to Buy and Sell Stock II | Medium | |
9 | Jump Game | Medium | |
10 | Jump Game II | Medium | |
11 | H-Index | Medium | |
12 | Insert Delete GetRandom O(1) | Medium | |
13 | Product of Array Except Self | Medium | |
14 | Gas Station | Medium | |
15 | Candy | Hard | |
16 | Trapping Rain Water | Hard | |
17 | Roman to Integer | Easy | ✅ |
18 | Integer to Roman | Medium | |
19 | Length of Last Word | Easy | ✅ |
20 | Longest Common Prefix | Easy | ✅ |
21 | Reverse Words in a String | Medium | |
22 | Zigzag Conversion | Medium | |
23 | Find the Index of the First Occurrence in a String | Easy | ✅ |
24 | Text Justification | Hard | |
Two Pointers |
|||
25 | Valid Palindrome | Easy | ✅ |
26 | Is Subsequence | Easy | ✅ |
27 | Two Sum II - Input Array Is Sorted | Medium | ✅ |
28 | Container With Most Water | Medium | ✅ |
29 | 3Sum | Medium | ✅ |
Sliding Window |
|||
30 | Minimum Size Subarray Sum | Medium | |
31 | Longest Substring Without Repeating Characters | Medium | |
32 | Substring with Concatenation of All Words | Hard | |
33 | Minimum Window Substring | Hard | |
Matrix |
|||
34 | Valid Sudoku | Medium | |
35 | Spiral Matrix | Medium | |
36 | Rotate Image | Medium | |
37 | Set Matrix Zeroes | Medium | |
38 | Game of Life | Medium | |
Hashmap |
|||
39 | Ransom Note | Easy | ✅ |
40 | Isomorphic Strings | Easy | ✅ |
41 | Word Pattern | Easy | |
42 | Valid Anagram | Easy | ✅ |
43 | Group Anagrams | Medium | ✅ |
44 | Two Sum | Easy | ✅ |
45 | Happy Number | Easy | ✅ |
46 | Contains Duplicate II | Easy | ✅ |
47 | Longest Consecutive Sequence | Medium | ✅ |
Intervals |
|||
48 | Summary Ranges | Easy | ✅ |
49 | Merge Intervals | Medium | ✅ |
50 | Insert Interval | Medium | ✅ |
51 | Minimum Number of Arrows to Burst Balloons | Medium | ✅ |
Stack |
|||
52 | Valid Parentheses | Easy | |
53 | Simplify Path | Medium | |
54 | Min Stack | Medium | |
55 | Evaluate Reverse Polish Notation | Medium | |
56 | Basic Calculator | Hard | |
Linked List |
|||
57 | Linked List Cycle | Easy | ✅ |
58 | Add Two Numbers | Medium | ✅ |
59 | Merge Two Sorted Lists | Easy | ✅ |
60 | Copy List with Random Pointer | Medium | |
61 | Reverse Linked List II | Medium | |
62 | Reverse Nodes in k-Group | Hard | |
63 | Remove Nth Node From End of List | Medium | |
64 | Remove Duplicates from Sorted List II | Medium | |
65 | Rotate List | Medium | |
66 | Partition List | Medium | |
67 | LRU Cache | Medium | |
Binary Tree General |
|||
68 | Maximum Depth of Binary Tree | Easy | ✅ |
69 | Same Tree | Easy | ✅ |
70 | Invert Binary Tree | Easy | ✅ |
71 | Symmetric Tree | Easy | |
72 | Construct Binary Tree from Preorder and Inorder Traversal | Medium | |
73 | Construct Binary Tree from Inorder and Postorder Traversal | Medium | |
74 | Populating Next Right Pointers in Each Node II | Medium | |
75 | Flatten Binary Tree to Linked List | Medium | |
76 | Path Sum | Easy | ✅ |
77 | Sum Root to Leaf Numbers | Medium | ✅ |
78 | Binary Tree Maximum Path Sum | Hard | |
79 | Binary Search Tree Iterator | Medium | |
80 | Count Complete Tree Nodes | Easy | ✅ |
81 | Lowest Common Ancestor of a Binary Tree | Medium | |
Binary Tree BFS |
|||
199 | Binary Tree Right Side View | Medium | ✅ |
83 | Average of Levels in Binary Tree | Easy | ✅ |
84 | Binary Tree Level Order Traversal | Medium | ✅ |
103 | Binary Tree Zigzag Level Order Traversal | Medium | ✅ |
Binary Search Tree |
|||
86 | Minimum Absolute Difference in BST | Easy | ✅ |
87 | Kth Smallest Element in a BST | Medium | ✅ |
98 | Validate Binary Search Tree | Medium | ✅ |
Graph General |
|||
200 | Number of Islands | Medium | ✅ |
130 | Surrounded Regions | Medium | ✅ |
91 | Clone Graph | Medium | |
92 | Evaluate Division | Medium | |
93 | Course Schedule | Medium | |
94 | Course Schedule II | Medium | |
Graph BFS |
|||
95 | Snakes and Ladders | Medium | |
96 | Minimum Genetic Mutation | Medium | |
97 | Word Ladder | Hard | |
Trie |
|||
98 | Implement Trie (Prefix Tree) | Medium | |
99 | Design Add and Search Words Data Structure | Medium | |
100 | Word Search II | Hard | |
Backtracking |
|||
101 | Letter Combinations of a Phone Number | Medium | ✅ |
102 | Combinations | Medium | ✅ |
103 | Permutations | Medium | ✅ |
104 | Combination Sum | Medium | ✅ |
105 | N-Queens II | Hard | ✅ |
106 | Generate Parentheses | Medium | ✅ |
107 | Word Search | Medium | ✅ |
Divide & Conquer |
|||
108 | Convert Sorted Array to Binary Search Tree | Easy | ✅ |
109 | Sort List | Medium | ✅ |
110 | Construct Quad Tree | Medium | ✅ |
111 | Merge k Sorted Lists | Hard | ✅ |
Kadane's Algorithm |
|||
112 | Maximum Subarray | Medium | |
113 | Maximum Sum Circular Subarray | Medium | |
Binary Search |
|||
114 | Search Insert Position | Easy | ✅ |
115 | Search a 2D Matrix | Medium | ✅ |
116 | Find Peak Element | Medium | ✅ |
117 | Search in Rotated Sorted Array | Medium | ✅ |
118 | Find First and Last Position of Element in Sorted Array | Medium | ✅ |
119 | Find Minimum in Rotated Sorted Array | Medium | ✅ |
120 | Median of Two Sorted Arrays | Hard | |
Heap |
|||
121 | Kth Largest Element in an Array | Medium | |
122 | IPO | Hard | |
123 | Find K Pairs with Smallest Sums | Medium | |
124 | Find Median from Data Stream | Hard | |
Bit Manipulation |
|||
125 | Add Binary | Easy | ✅ |
126 | Reverse Bits | Easy | |
127 | Number of 1 Bits | Easy | |
128 | Single Number | Easy | ✅ |
129 | Single Number II | Medium | |
130 | Bitwise AND of Numbers Range | Medium | |
Math |
|||
131 | Palindrome Number | Easy | |
132 | Plus One | Easy | ✅ |
133 | Factorial Trailing Zeroes | Medium | |
134 | Sqrt(x) | Easy | |
135 | Pow(x, n) | Medium | |
136 | Max Points on a Line | Hard | |
1D DP |
|||
137 | Climbing Stairs | Easy | ✅ |
138 | House Robber | Medium | |
139 | Word Break | Medium | |
140 | Coin Change | Medium | |
141 | Longest Increasing Subsequence | Medium | |
Multidimensional DP |
|||
142 | Triangle | Medium | |
143 | Minimum Path Sum | Medium | |
144 | Unique Paths II | Medium | |
145 | Longest Palindromic Substring | Medium | |
146 | Interleaving String | Medium | |
147 | Edit Distance | Medium | |
148 | Best Time to Buy and Sell Stock III | Hard | |
149 | Best Time to Buy and Sell Stock IV | Hard | |
150 | Maximal Square | Medium |
This repository is organized by problem number, with each problem having its own directory.
Inside each problem directory, you will find the solution file(s) along with a README file that provides a problem description, constraints, and additional notes if necessary.
Navigate through the problem directories to explore solutions. Each directory contains the solution files, including explanations and sample input/output.
You can practice implementing your solutions and compare them with those provided.
Feel free to contribute by submitting your solutions or improvements. Open a pull request to share your contributions.
I recommend contributions for new languages, as currently, the solution is only available in C# 🐛.
- Leetcode
- Top 150 Interview Questions - Leetcode
- Readme structure referred from this repository
Happy coding and good luck with your interview preparation! 🎉