1. Two Sum 🔗open in new window | Easy | Array , Hash Table | c | golang | javascript |
2. Add Two Numbers 🔗open in new window | Medium | Linked List , Math , Recursion | golang | javascript | typescript |
3. Longest Substring Without Repeating Characters 🔗open in new window | Medium | Hash Table , String , Sliding Window | golang | javascript |
4. Median of Two Sorted Arrays 🔗open in new window | Hard | Array , Binary Search , Divide and Conquer | golang | javascript |
8. String to Integer (atoi) 🔗open in new window | Medium | String | c |
9. Palindrome Number 🔗open in new window | Easy | Math | c |
13. Roman to Integer 🔗open in new window | Easy | Hash Table , Math , String | c | typescript |
14. Longest Common Prefix 🔗open in new window | Easy | String | c |
15. 3Sum 🔗open in new window | Medium | Array , Two Pointers , Sorting | javascript |
16. 3Sum Closest 🔗open in new window | Medium | Array , Two Pointers , Sorting | javascript |
19. Remove Nth Node From End of List 🔗open in new window | Medium | Linked List , Two Pointers | javascript |
20. Valid Parentheses 🔗open in new window | Easy | String , Stack | c | javascript |
21. Merge Two Sorted Lists 🔗open in new window | Easy | Linked List , Recursion | c | javascript |
22. Generate Parentheses 🔗open in new window | Medium | String , Dynamic Programming , Backtracking | javascript |
24. Swap Nodes in Pairs 🔗open in new window | Medium | Linked List , Recursion | c |
26. Remove Duplicates from Sorted Array 🔗open in new window | Easy | Array , Two Pointers | c |
27. Remove Element 🔗open in new window | Easy | Array , Two Pointers | c |
28. Implement strStr() 🔗open in new window | Easy | Two Pointers , String , String Matching | c |
35. Search Insert Position 🔗open in new window | Easy | Array , Binary Search | javascript |
36. Valid Sudoku 🔗open in new window | Medium | Array , Hash Table , Matrix | javascript |
44. Wildcard Matching 🔗open in new window | Hard | String , Dynamic Programming , Greedy , Recursion | c | golang |
46. Permutations 🔗open in new window | Medium | Array , Backtracking | javascript |
48. Rotate Image 🔗open in new window | Medium | Array , Math , Matrix | javascript |
52. N-Queens II 🔗open in new window | Hard | Backtracking | golang | javascript |
53. Maximum Subarray 🔗open in new window | Easy | Array , Divide and Conquer , Dynamic Programming | javascript |
56. Merge Intervals 🔗open in new window | Medium | Array , Sorting | javascript |
58. Length of Last Word 🔗open in new window | Easy | String | c |
59. Spiral Matrix II 🔗open in new window | Medium | Array , Matrix , Simulation | javascript |
61. Rotate List 🔗open in new window | Medium | Linked List , Two Pointers | c |
62. Unique Paths 🔗open in new window | Medium | Math , Dynamic Programming , Combinatorics | c |
63. Unique Paths II 🔗open in new window | Medium | Array , Dynamic Programming , Matrix | c | typescript |
66. Plus One 🔗open in new window | Easy | Array , Math | c |
67. Add Binary 🔗open in new window | Easy | Math , String , Bit Manipulation , Simulation | c | typescript |
69. Sqrt(x) 🔗open in new window | Easy | Math , Binary Search | c |
70. Climbing Stairs 🔗open in new window | Easy | Math , Dynamic Programming , Memoization | c | javascript |
71. Simplify Path 🔗open in new window | Medium | String , Stack | c |
74. Search a 2D Matrix 🔗open in new window | Medium | Array , Binary Search , Matrix | c | javascript |
75. Sort Colors 🔗open in new window | Medium | Array , Two Pointers , Sorting | javascript |
77. Combinations 🔗open in new window | Medium | Backtracking | javascript |
81. Search in Rotated Sorted Array II 🔗open in new window | Medium | Array , Binary Search | c |
82. Remove Duplicates from Sorted List II 🔗open in new window | Medium | Linked List , Two Pointers | c | golang | javascript | typescript |
83. Remove Duplicates from Sorted List 🔗open in new window | Easy | Linked List | javascript |
88. Merge Sorted Array 🔗open in new window | Easy | Array , Two Pointers , Sorting | javascript |
89. Gray Code 🔗open in new window | Medium | Math , Backtracking , Bit Manipulation | javascript |
92. Reverse Linked List II 🔗open in new window | Medium | Linked List | cpp |
94. Binary Tree Inorder Traversal 🔗open in new window | Easy | Stack , Tree , Depth-First Search , Binary Tree | javascript |
97. Interleaving String 🔗open in new window | Medium | String , Dynamic Programming | javascript |
98. Validate Binary Search Tree 🔗open in new window | Medium | Tree , Depth-First Search , Binary Search Tree , Binary Tree | javascript |
101. Symmetric Tree 🔗open in new window | Easy | Tree , Depth-First Search , Breadth-First Search , Binary Tree | javascript |
102. Binary Tree Level Order Traversal 🔗open in new window | Medium | Tree , Breadth-First Search , Binary Tree | javascript |
104. Maximum Depth of Binary Tree 🔗open in new window | Easy | Tree , Depth-First Search , Breadth-First Search , Binary Tree | javascript |
105. Construct Binary Tree from Preorder and Inorder Traversal 🔗open in new window | Medium | Array , Hash Table , Divide and Conquer , Tree , Binary Tree | javascript |
112. Path Sum 🔗open in new window | Easy | Tree , Depth-First Search , Breadth-First Search , Binary Tree | javascript |
116. Populating Next Right Pointers in Each Node 🔗open in new window | Medium | Linked List , Tree , Depth-First Search , Breadth-First Search , Binary Tree | javascript |
118. Pascal's Triangle 🔗open in new window | Easy | Array , Dynamic Programming | javascript |
119. Pascal's Triangle II 🔗open in new window | Easy | Array , Dynamic Programming | javascript |
120. Triangle 🔗open in new window | Medium | Array , Dynamic Programming | javascript |
121. Best Time to Buy and Sell Stock 🔗open in new window | Easy | Array , Dynamic Programming | javascript |
128. Longest Consecutive Sequence 🔗open in new window | Medium | Array , Hash Table , Union Find | javascript |
133. Clone Graph 🔗open in new window | Medium | Hash Table , Depth-First Search , Breadth-First Search , Graph | c |
135. Candy 🔗open in new window | Hard | Array , Greedy | javascript |
136. Single Number 🔗open in new window | Easy | Array , Bit Manipulation | javascript |
138. Copy List with Random Pointer 🔗open in new window | Medium | Hash Table , Linked List | c |
141. Linked List Cycle 🔗open in new window | Easy | Hash Table , Linked List , Two Pointers | c | javascript |
144. Binary Tree Preorder Traversal 🔗open in new window | Easy | Stack , Tree , Depth-First Search , Binary Tree | javascript |
145. Binary Tree Postorder Traversal 🔗open in new window | Easy | Stack , Tree , Depth-First Search , Binary Tree | javascript |
167. Two Sum II - Input Array Is Sorted 🔗open in new window | Medium | Array , Two Pointers , Binary Search | javascript |
169. Majority Element 🔗open in new window | Easy | Array , Hash Table , Divide and Conquer , Sorting , Counting | javascript |
189. Rotate Array 🔗open in new window | Medium | Array , Math , Two Pointers | javascript |
190. Reverse Bits 🔗open in new window | Easy | Divide and Conquer , Bit Manipulation | javascript |
191. Number of 1 Bits 🔗open in new window | Easy | Bit Manipulation | c | golang | javascript | typescript |
198. House Robber 🔗open in new window | Medium | Array , Dynamic Programming | javascript |
203. Remove Linked List Elements 🔗open in new window | Easy | Linked List , Recursion | javascript |
206. Reverse Linked List 🔗open in new window | Easy | Linked List , Recursion | javascript |
217. Contains Duplicate 🔗open in new window | Easy | Array , Hash Table , Sorting | javascript |
226. Invert Binary Tree 🔗open in new window | Easy | Tree , Depth-First Search , Breadth-First Search , Binary Tree | javascript |
231. Power of Two 🔗open in new window | Easy | Math , Bit Manipulation , Recursion | javascript |
232. Implement Queue using Stacks 🔗open in new window | Easy | Stack , Design , Queue | javascript |
235. Lowest Common Ancestor of a Binary Search Tree 🔗open in new window | Easy | Tree , Depth-First Search , Binary Search Tree , Binary Tree | javascript |
236. Lowest Common Ancestor of a Binary Tree 🔗open in new window | Medium | Tree , Depth-First Search , Binary Tree | javascript |
240. Search a 2D Matrix II 🔗open in new window | Medium | Array , Binary Search , Divide and Conquer , Matrix | javascript |
242. Valid Anagram 🔗open in new window | Easy | Hash Table , String , Sorting | javascript |
278. First Bad Version 🔗open in new window | Easy | Binary Search , Interactive | javascript |
283. Move Zeroes 🔗open in new window | Easy | Array , Two Pointers | c | javascript |
287. Find the Duplicate Number 🔗open in new window | Medium | Array , Two Pointers , Binary Search , Bit Manipulation | c |
307. Range Sum Query - Mutable 🔗open in new window | Medium | Array , Design , Binary Indexed Tree , Segment Tree | javascript |
315. Count of Smaller Numbers After Self 🔗open in new window | Hard | Array , Binary Search , Divide and Conquer , Binary Indexed Tree , Segment Tree , Merge Sort , Ordered Set | cpp |
316. Remove Duplicate Letters 🔗open in new window | Medium | String , Stack , Greedy , Monotonic Stack | c |
318. Maximum Product of Word Lengths 🔗open in new window | Medium | Array , String , Bit Manipulation | golang | javascript |
322. Coin Change 🔗open in new window | Medium | Array , Dynamic Programming , Breadth-First Search | c |
326. Power of Three 🔗open in new window | Easy | Math , Recursion | c |
336. Palindrome Pairs 🔗open in new window | Hard | Array , Hash Table , String , Trie | javascript |
338. Counting Bits 🔗open in new window | Easy | Dynamic Programming , Bit Manipulation | c |
344. Reverse String 🔗open in new window | Easy | Two Pointers , String , Recursion | c | javascript | rust |
350. Intersection of Two Arrays II 🔗open in new window | Easy | Array , Hash Table , Two Pointers , Binary Search , Sorting | javascript |
363. Max Sum of Rectangle No Larger Than K 🔗open in new window | Hard | Array , Binary Search , Dynamic Programming , Matrix , Ordered Set | cpp |
378. Kth Smallest Element in a Sorted Matrix 🔗open in new window | Medium | Array , Binary Search , Sorting , Heap (Priority Queue) , Matrix | javascript |
383. Ransom Note 🔗open in new window | Easy | Hash Table , String , Counting | javascript |
387. First Unique Character in a String 🔗open in new window | Easy | Hash Table , String , Queue , Counting | javascript |
392. Is Subsequence 🔗open in new window | Easy | Two Pointers , String , Dynamic Programming | c |
410. Split Array Largest Sum 🔗open in new window | Hard | Array , Binary Search , Dynamic Programming , Greedy | c |
413. Arithmetic Slices 🔗open in new window | Medium | Array , Dynamic Programming | c |
473. Matchsticks to Square 🔗open in new window | Medium | Array , Dynamic Programming , Backtracking , Bit Manipulation , Bitmask | javascript |
476. Number Complement 🔗open in new window | Easy | Bit Manipulation | c |
485. Max Consecutive Ones 🔗open in new window | Easy | Array | javascript |
506. Relative Ranks 🔗open in new window | Easy | Array , Sorting , Heap (Priority Queue) | javascript |
542. 01 Matrix 🔗open in new window | Medium | Array , Dynamic Programming , Breadth-First Search , Matrix | javascript |
557. Reverse Words in a String III 🔗open in new window | Easy | Two Pointers , String | javascript |
566. Reshape the Matrix 🔗open in new window | Easy | Array , Matrix , Simulation | javascript |
567. Permutation in String 🔗open in new window | Medium | Hash Table , Two Pointers , String , Sliding Window | javascript |
576. Out of Boundary Paths 🔗open in new window | Medium | Dynamic Programming | javascript |
617. Merge Two Binary Trees 🔗open in new window | Easy | Tree , Depth-First Search , Breadth-First Search , Binary Tree | javascript |
629. K Inverse Pairs Array 🔗open in new window | Hard | Dynamic Programming | javascript |
653. Two Sum IV - Input is a BST 🔗open in new window | Easy | Hash Table , Two Pointers , Tree , Depth-First Search , Breadth-First Search , Binary Search Tree , Binary Tree | javascript |
658. Find K Closest Elements 🔗open in new window | Medium | Array , Two Pointers , Binary Search , Sorting , Heap (Priority Queue) | javascript |
680. Valid Palindrome II 🔗open in new window | Easy | Two Pointers , String , Greedy | c |
682. Baseball Game 🔗open in new window | Easy | Array , Stack , Simulation | golang |
684. Redundant Connection 🔗open in new window | Medium | Depth-First Search , Breadth-First Search , Union Find , Graph | javascript |
695. Max Area of Island 🔗open in new window | Medium | Array , Depth-First Search , Breadth-First Search , Union Find , Matrix | c | javascript |
700. Search in a Binary Search Tree 🔗open in new window | Easy | Tree , Binary Search Tree , Binary Tree | javascript |
701. Insert into a Binary Search Tree 🔗open in new window | Medium | Tree , Binary Search Tree , Binary Tree | javascript |
704. Binary Search 🔗open in new window | Easy | Array , Binary Search | c | javascript |
705. Design HashSet 🔗open in new window | Easy | Array , Hash Table , Linked List , Design , Hash Function | c |
706. Design HashMap 🔗open in new window | Easy | Array , Hash Table , Linked List , Design , Hash Function | javascript |
729. My Calendar I 🔗open in new window | Medium | Binary Search , Design , Segment Tree , Ordered Set | c | javascript |
733. Flood Fill 🔗open in new window | Easy | Array , Depth-First Search , Breadth-First Search , Matrix | javascript |
740. Delete and Earn 🔗open in new window | Medium | Array , Hash Table , Dynamic Programming | c |
746. Min Cost Climbing Stairs 🔗open in new window | Easy | Array , Dynamic Programming | c | javascript |
752. Open the Lock 🔗open in new window | Medium | Array , Hash Table , String , Breadth-First Search | javascript |
763. Partition Labels 🔗open in new window | Medium | Hash Table , Two Pointers , String , Greedy | c | typescript |
778. Swim in Rising Water 🔗open in new window | Hard | Array , Binary Search , Depth-First Search , Breadth-First Search , Union Find , Heap (Priority Queue) , Matrix | cpp |
784. Letter Case Permutation 🔗open in new window | Medium | String , Backtracking , Bit Manipulation | javascript |
792. Number of Matching Subsequences 🔗open in new window | Medium | Hash Table , String , Trie , Sorting | cpp |
795. Number of Subarrays with Bounded Maximum 🔗open in new window | Medium | Array , Two Pointers | javascript |
799. Champagne Tower 🔗open in new window | Medium | Dynamic Programming | c |
856. Score of Parentheses 🔗open in new window | Medium | String , Stack | c | golang | typescript |
871. Minimum Number of Refueling Stops 🔗open in new window | Hard | Array , Dynamic Programming , Greedy , Heap (Priority Queue) | javascript |
876. Middle of the Linked List 🔗open in new window | Easy | Linked List , Two Pointers | c | javascript |
881. Boats to Save People 🔗open in new window | Medium | Array , Two Pointers , Greedy , Sorting | c |
895. Maximum Frequency Stack 🔗open in new window | Hard | Hash Table , Stack , Design , Ordered Set | c | javascript | typescript |
905. Sort Array By Parity 🔗open in new window | Easy | Array , Two Pointers , Sorting | c |
941. Valid Mountain Array 🔗open in new window | Easy | Array | c |
946. Validate Stack Sequences 🔗open in new window | Medium | Array , Stack , Simulation | c | typescript |
977. Squares of a Sorted Array 🔗open in new window | Easy | Array , Two Pointers , Sorting | javascript |
991. Broken Calculator 🔗open in new window | Medium | Math , Greedy | c |
994. Rotting Oranges 🔗open in new window | Medium | Array , Breadth-First Search , Matrix | javascript |
1004. Max Consecutive Ones III 🔗open in new window | Medium | Array , Binary Search , Sliding Window , Prefix Sum | javascript |
1007. Minimum Domino Rotations For Equal Row 🔗open in new window | Medium | Array , Greedy | c |
1009. Complement of Base 10 Integer 🔗open in new window | Easy | Bit Manipulation | c |
1029. Two City Scheduling 🔗open in new window | Medium | Array , Greedy , Sorting | c | javascript | typescript |
1047. Remove All Adjacent Duplicates In String 🔗open in new window | Easy | String , Stack | javascript |
1081. Smallest Subsequence of Distinct Characters 🔗open in new window | Medium | String , Stack , Greedy , Monotonic Stack | c |
1089. Duplicate Zeros 🔗open in new window | Easy | Array , Two Pointers | javascript |
1220. Count Vowels Permutation 🔗open in new window | Hard | Dynamic Programming | cpp |
1249. Minimum Remove to Make Valid Parentheses 🔗open in new window | Medium | String , Stack | c |
1290. Convert Binary Number in a Linked List to Integer 🔗open in new window | Easy | Linked List , Math | c | cpp | golang | java | javascript | php | python3 | python | typescript |
1295. Find Numbers with Even Number of Digits 🔗open in new window | Easy | Array | javascript |
1299. Replace Elements with Greatest Element on Right Side 🔗open in new window | Easy | Array | c |
1337. The K Weakest Rows in a Matrix 🔗open in new window | Easy | Array , Binary Search , Sorting , Heap (Priority Queue) , Matrix | javascript | typescript |
1338. Reduce Array Size to The Half 🔗open in new window | Medium | Array , Hash Table , Greedy , Sorting , Heap (Priority Queue) | javascript |
1346. Check If N and Its Double Exist 🔗open in new window | Easy | Array , Hash Table , Two Pointers , Binary Search , Sorting | c |
1359. Count All Valid Pickup and Delivery Options 🔗open in new window | Hard | Math , Dynamic Programming , Combinatorics | c | cpp | csharp | java | javascript | python3 | python | ruby | rust | typescript |
1383. Maximum Performance of a Team 🔗open in new window | Hard | Array , Greedy , Sorting , Heap (Priority Queue) | cpp | javascript |
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts 🔗open in new window | Medium | Array , Greedy , Sorting | c | javascript |
1663. Smallest String With A Given Numeric Value 🔗open in new window | Medium | String , Greedy | c | typescript |
1689. Partitioning Into Minimum Number Of Deci-Binary Numbers 🔗open in new window | Medium | String , Greedy | golang | javascript |
1690. Stone Game VII 🔗open in new window | Medium | Array , Math , Dynamic Programming , Game Theory | c | javascript |
1695. Maximum Erasure Value 🔗open in new window | Medium | Array , Hash Table , Sliding Window | golang | javascript |
1696. Jump Game VI 🔗open in new window | Medium | Array , Dynamic Programming , Queue , Sliding Window , Heap (Priority Queue) , Monotonic Queue | javascript |
1710. Maximum Units on a Truck 🔗open in new window | Easy | Array , Greedy , Sorting | javascript |
1876. Substrings of Size Three with Distinct Characters 🔗open in new window | Easy | Hash Table , String , Sliding Window , Counting | javascript |
1877. Minimize Maximum Pair Sum in Array 🔗open in new window | Medium | Array , Two Pointers , Greedy , Sorting | javascript |
1878. Get Biggest Three Rhombus Sums in a Grid 🔗open in new window | Medium | Array , Math , Sorting , Heap (Priority Queue) , Matrix , Prefix Sum | cpp |
1879. Minimum XOR Sum of Two Arrays 🔗open in new window | Hard | Array , Dynamic Programming , Bit Manipulation , Bitmask | cpp |
1880. Check if Word Equals Summation of Two Words 🔗open in new window | Easy | String | javascript |
1881. Maximum Value after Insertion 🔗open in new window | Medium | String , Greedy | javascript |
1882. Process Tasks Using Servers 🔗open in new window | Medium | Array , Heap (Priority Queue) | cpp |
1893. Check if All the Integers in a Range Are Covered 🔗open in new window | Easy | Array , Hash Table , Prefix Sum | javascript |
1894. Find the Student that Will Replace the Chalk 🔗open in new window | Medium | Array , Binary Search , Simulation , Prefix Sum | javascript |
1895. Largest Magic Square 🔗open in new window | Medium | Array , Matrix , Prefix Sum | golang |
1897. Redistribute Characters to Make All Strings Equal 🔗open in new window | Easy | Hash Table , String , Counting | javascript |
1899. Merge Triplets to Form Target Triplet 🔗open in new window | Medium | Array , Greedy | javascript |
1909. Remove One Element to Make the Array Strictly Increasing 🔗open in new window | Easy | Array | javascript |
1910. Remove All Occurrences of a Substring 🔗open in new window | Medium | String | javascript |