1 | Two Sum | 2 | 5 |
- array
- set
|
- sort
- two pointers
|
2 | Add Two Numbers | 3 | 4 |
- linked list
|
- two pointers
- math
|
3 | Longest Substring Without Repeating Characters | 3 | 2 |
- string
- hashtable
|
- two pointers
|
4 | Median of Two Sorted Arrays | 5 | 3 |
- array
|
- binary search
|
5 | Longest Palindromic Substring | 4 | 2 |
- string
| |
6 | ZigZag Conversion | 3 | 1 |
- string
| |
7 | Reverse Integer | 2 | 3 | |
- math
|
8 | String to Integer (atoi) | 2 | 5 |
- string
|
- math
|
9 | Palindrome Number | 2 | 2 | |
- math
|
10 | Regular Expression Matching | 5 | 3 |
- string
|
- recursion
- dp
|
11 | Container With Most Water | 3 | 2 |
- array
|
- two pointers
|
12 | Integer to Roman | 3 | 4 | |
- math
|
13 | Roman to Integer | 2 | 4 | |
- math
|
14 | Longest Common Prefix | 2 | 1 |
- string
| |
15 | 3Sum | 3 | 5 |
- array
|
- two pointers
|
16 | 3Sum Closest | 3 | 1 |
- array
|
- two pointers
|
17 | Letter Combinations of a Phone Number | 3 | 3 |
- string
|
- dfs
|
18 | 4Sum | 3 | 2 |
- array
| |
19 | Remove Nth Node From End of List | 2 | 3 |
- linked list
|
- two pointers
|
20 | Valid Parentheses | 2 | 5 |
- string
|
- stack
|
21 | Merge Two Sorted Lists | 2 | 5 |
- linked list
|
- sort
- two pointers
- merge
|
22 | Generate Parentheses | 3 | 4 |
- string
|
- dfs
|
23 | Merge k Sorted Lists | 3 | 4 |
- linked list
- heap
|
- sort
- two pointers
- merge
|
24 | Swap Nodes in Pairs | 2 | 4 |
- linked list
| |
25 | Reverse Nodes in k-Group | 4 | 2 |
- linked list
|
- recursion
- two pointers
|
26 | Remove Duplicates from Sorted Array | 1 | 3 |
- array
|
- two pointers
|
27 | Remove Element | 1 | 4 |
- array
|
- two pointers
|
28 | Implement strStr() | 4 | 5 |
- string
|
- two pointers
- KMP
- rolling hash
|
29 | Divide Two Integers | 4 | 3 | |
- binary search
- math
|
30 | Substring with Concatenation of All Words | 3 | 1 |
- string
|
- two pointers
|
31 | Next Permutation | 5 | 2 |
- array
|
- permutation
|
32 | Longest Valid Parentheses | 4 | 1 |
- string
|
- dp
|
33 | Search in Rotated Sorted Array | 4 | 3 |
- array
|
- binary search
|
34 | Search for a Range | 4 | 3 |
- array
|
- binary search
|
35 | Search Insert Position | 2 | 2 |
- array
| |
36 | Valid Sudoku | 2 | 2 |
- array
| |
37 | Sudoku Solver | 4 | 2 |
- array
|
- dfs
|
38 | Count and Say | 2 | 2 |
- string
|
- two pointers
|
39 | Combination Sum | 3 | 3 |
- array
|
- combination
|
40 | Combination Sum II | 4 | 2 |
- array
|
- combination
|
41 | First Missing Positive | 5 | 2 |
- array
|
- sort
|
42 | Trapping Rain Water | 4 | 2 |
- array
|
- two pointers
- stack
|
43 | Multiply Strings | 4 | 3 |
- string
|
- two pointers
- math
|
44 | Wildcard Matching | 5 | 3 |
- string
|
- recursion
- dp
- greedy
|
45 | Jump Game II | 4 | 2 |
- array
| |
46 | Permutations | 3 | 4 |
- array
|
- permutation
|
47 | Permutations II | 4 | 2 |
- array
|
- permutation
|
48 | Rotate Image | 4 | 2 |
- array
| |
49 | Anagrams | 3 | 4 |
- string
- hashtable
| |
50 | Pow(x, n) | 3 | 5 | |
- binary search
- math
|
51 | N-Queens | 4 | 3 |
- array
|
- dfs
|
52 | N-Queens II | 4 | 3 |
- array
|
- dfs
|
53 | Maximum Subarray | 3 | 3 |
- array
|
- dp
|
54 | Spiral Matrix | 4 | 2 |
- array
| |
55 | Jump Game | 3 | 2 |
- array
| |
56 | Merge Intervals | 4 | 5 |
- array
- linked list
- red-black tree
|
- sort
- merge
|
57 | Insert Interval | 4 | 5 |
- array
- linked list
- red-black tree
|
- sort
- merge
|
58 | Length of Last Word | 1 | 1 |
- string
| |
59 | Spiral Matrix II | 3 | 2 |
- array
| |
60 | Permutation Sequence | 5 | 1 | |
- permutation
- math
|
61 | Rotate List | 3 | 2 |
- linked list
|
- two pointers
|
62 | Unique Paths | 2 | 3 |
- array
|
- dp
|
63 | Unique Paths II | 3 | 3 |
- array
|
- dp
|
64 | Minimum Path Sum | 3 | 3 |
- array
|
- dp
|
65 | Valid Number | 2 | 5 |
- string
|
- math
|
66 | Plus One | 1 | 2 |
- array
|
- math
|
67 | Add Binary | 2 | 4 |
- string
|
- two pointers
- math
|
68 | Text Justification | 4 | 2 |
- string
| |
69 | Sqrt(x) | 4 | 4 | |
- binary search
|
70 | Climbing Stairs | 2 | 5 | |
- dp
|
71 | Simplify Path | 3 | 1 |
- string
|
- stack
|
72 | Edit Distance | 4 | 3 |
- string
|
- dp
|
73 | Set Matrix Zeroes | 3 | 5 |
- array
| |
74 | Search a 2D Matrix | 3 | 3 |
- array
|
- binary search
|
75 | Sort Colors | 4 | 2 |
- array
|
- sort
- two pointers
|
76 | Minimum Window Substring | 4 | 2 |
- string
|
- two pointers
|
77 | Combinations | 3 | 4 | |
- combination
|
78 | Subsets | 3 | 4 |
- array
|
- recursion
- combination
|
79 | Word Search | 3 | 4 |
- array
|
- dfs
|
80 | Remove Duplicates from Sorted Array II | 2 | 2 |
- array
|
- two pointers
|
81 | Search in Rotated Sorted Array II | 5 | 3 |
- array
|
- binary search
|
82 | Remove Duplicates from Sorted List II | 3 | 3 |
- linked list
|
- recursion
- two pointers
|
83 | Remove Duplicates from Sorted List | 1 | 3 |
- linked list
| |
84 | Largest Rectangle in Histogram | 5 | 2 |
- array
|
- stack
|
85 | Maximal Rectangle | 5 | 1 |
- array
|
- dp
- stack
|
86 | Partition List | 3 | 3 |
- linked list
|
- two pointers
|
87 | Scramble String | 5 | 2 |
- string
|
- recursion
- dp
|
88 | Merge Sorted Array | 2 | 5 |
- array
|
- two pointers
- merge
|
89 | Gray Code | 4 | 2 | |
- combination
|
90 | Subsets II | 4 | 2 |
- array
|
- recursion
- combination
|
91 | Decode Ways | 3 | 4 |
- string
|
- recursion
- dp
|
92 | Reverse Linked List II | 3 | 2 |
- linked list
|
- two pointers
|
93 | Restore IP Addresses | 3 | 3 |
- string
|
- dfs
|
94 | Binary Tree Inorder Traversal | 4 | 3 |
- tree
- hashtable
|
- recursion
- morris
- stack
|
95 | Unique Binary Search Trees II | 4 | 1 |
- tree
|
- dp
- dfs
|
96 | Unique Binary Search Trees | 3 | 1 |
- tree
|
- dp
|
97 | Interleaving String | 5 | 2 |
- string
|
- recursion
- dp
|
98 | Validate Binary Search Tree | 3 | 5 |
- tree
|
- dfs
|
99 | Recover Binary Search Tree | 4 | 2 |
- tree
|
- dfs
|
100 | Same Tree | 1 | 1 |
- tree
|
- dfs
|
101 | Symmetric Tree | 1 | 2 |
- tree
|
- dfs
|
102 | Binary Tree Level Order Traversal | 3 | 4 |
- tree
|
- bfs
|
103 | Binary Tree Zigzag Level Order Traversal | 4 | 3 |
- queue
- tree
|
- bfs
- stack
|
104 | Maximum Depth of Binary Tree | 1 | 1 |
- tree
|
- dfs
|
105 | Construct Binary Tree from Preorder and Inorder Tr | 3 | 3 |
- array
- tree
|
- dfs
|
106 | Construct Binary Tree from Inorder and Postorder T | 3 | 3 |
- array
- tree
|
- dfs
|
107 | Binary Tree Level Order Traversal II | 3 | 1 |
- tree
|
- bfs
|
108 | Convert Sorted Array to Binary Search Tree | 2 | 3 |
- tree
|
- dfs
|
109 | Convert Sorted List to Binary Search Tree | 4 | 3 |
- linked list
|
- recursion
- two pointers
|
110 | Balanced Binary Tree | 1 | 2 |
- tree
|
- dfs
|
111 | Minimum Depth of Binary Tree | 1 | 1 |
- tree
|
- dfs
|
112 | Path Sum | 1 | 3 |
- tree
|
- dfs
|
113 | Path Sum II | 2 | 2 |
- tree
|
- dfs
|
114 | Flatten Binary Tree to Linked List | 3 | 3 |
- tree
|
- recursion
- stack
|
115 | Distinct Subsequences | 4 | 2 |
- string
|
- dp
|
116 | Populating Next Right Pointers in Each Node | 3 | 3 |
- tree
|
- dfs
|
117 | Populating Next Right Pointers in Each Node II | 4 | 2 |
- tree
|
- dfs
|
118 | Pascal's Triangle | 2 | 1 |
- array
| |
119 | Pascal's Triangle II | 2 | 1 |
- array
| |
120 | Triangle | 3 | 1 |
- array
|
- dp
|
121 | Best Time to Buy and Sell Stock | 2 | 1 |
- array
|
- dp
|
122 | Best Time to Buy and Sell Stock II | 3 | 1 |
- array
|
- greedy
|
123 | Best Time to Buy and Sell Stock III | 4 | 1 |
- array
|
- dp
|
124 | Binary Tree Maximum Path Sum | 4 | 2 |
- tree
|
- dfs
|
125 | Valid Palindrome | 2 | 5 |
- string
|
- two pointers
|
126 | Word Ladder II | 1 | 1 | | |
127 | Word Ladder | 3 | 5 |
- graph
|
- bfs
- shortest path
|
128 | Longest Consecutive Sequence | 4 | 3 |
- array
| |
129 | Sum Root to Leaf Numbers | 2 | 4 |
- tree
|
- dfs
|
130 | Surrounded Regions | 4 | 3 |
- array
|
- bfs
- dfs
|
131 | Palindrome Partitioning | 3 | 4 |
- string
|
- dfs
|
132 | Palindrome Partitioning II | 4 | 3 |
- string
|
- dp
|