一个假acmer的重拾算法之路
no | Title | Tag | Coefficient of difficulty |
---|---|---|---|
1 | Two Sum | Array HashTable |
Easy |
2 | Add Two Numbers | LinkedList Math |
Medium |
3 | Longest Substring Without Repeating Characters | Hash Table Two Pointers String |
Medium |
4 | Median of Two Sorted Arrays | Array Binary Search Divide Conquer |
Hard |
5 | Longest Palindrome Substring | String |
Medium |
6 | ZigZag Conversion | String |
Medium |
7 | Reverse Integer | Math |
Easy |
8 | String to Integer (atoi) | Math String |
Medium |
9 | Palindrome Number | Math |
Easy |
10 | Regular Expression Matching | String Dynamic Programming Backtracking |
Hard |
11 | Container With Most Water | Array Two Pointers |
Medium |
12 | Integer to Roman | Math String |
Medium |
13 | Roman to Integer | Math String |
Easy |
14 | Longest Common Prefix | String |
Easy |
15 | 3Sum | Array Two Pointers |
Medium |
16 | 3Sum Closest | Array Two Pointers |
Medium |
17 | Letter Combinations of a Phone Number | String Backtracking |
Medium |
18 | 4Sum | Array Two Pointers |
Medium |
19 | Remove Nth Node From End of List | ListedList Two Pointers |
Medium |
20 | Valid Parentheses | String Stack |
Easy |
21 | Merge Two Sorted Lists | LinkedList |
Easy |
22 | Generate Parentheses | String BackTracking |
Medium |
23 | Merge Kth Sorted Lists | LinkedList Divide Conquer Heap |
Hard |
24 | Swap Nodes in Pairs | LinkedList |
Medium |
25 | Reverse Nodes in k-Group | LinkedList |
Hard |
26 | Remove Duplicates From Sorted Array | Array Two Pointers |
Easy |
27 | Remove Element | Array Two Pointers |
Easy |
28 | Implement strStr() | String Two Pointers |
Easy |
29 | Divide Two Integers | Math Binary Search |
Medium |
30 | Substring with Concatenation of All Words | String HashTable Two Pointers |
Hard |
31 | Next Permutation | Array |
Medium |
32 | Longest Valid Parentheses | String Dynamic Programming |
Medium |
33 | Search in Rotated Sorted Array | Array Binary Search |
Medium |
34 | Search for a Range | Array Binary Search |
Medium |
35 | Search Insert Position | Array Binary Search |
Easy |
36 | Valid Sudoku | Hash Table |
Medium |
37 | Sudoku Solver | Hash Table Backtracking |
Hard |
38 | Count and Say | String |
Easy |
39 | Combination Sum | Array Backtracking |
Medium |
40 | Combination Sum II | Array Backtracking |
Medium |
41 | First Missing Positive | Array |
Hard |
42 | Trapping Rain Water | Array Two Pointers Stack |
Hard |
43 | Multiply Strings | Math String |
Medium |
44 | Wildcard Matching | String Dynamic Programing |
Medium |
45 | Jump Game II | Array Greedy |
Medium |
46 | Permutation | Backtracking |
Medium |
47 | Permutation II | Backtracking Array |
Medium |
48 | Rotate Image | Array |
Medium |
49 | Group Anagrams | Hash Table String |
Medium |
50 | Pow(x, n) | Math Binary Search |
Medium |
51 | N-Queens | Backtracking |
Hard |
52 | N-Queens II | Backtracking |
Hard |
53 | Maximum Subarray | Dynamic Programing Array Divide and Conquer |
Easy |
54 | Spiral Matrix | Array |
Medium |
55 | Jump Game | Array Greedy |
Medium |
56 | Merge Intervals | Array Sort |
Medium |
57 | Insert Interval | Array Sort |
Hard |
58 | Length of Last Word | String |
Easy |
59 | Spiral Matrix II | Array |
Medium |
60 | Permutation Sequence | Backtracking Math |
Medium |
61 | Rotate List | LinkedList Two Pointers |
Medium |
62 | Unique Paths | Dynamic Programing Array |
Medium |
63 | Unique Paths II | Dynamic Programing Array |
Medium |
64 | Minimum Path Sum | Dynamic Programing Array |
Medium |
65 | Valid Number | Math String |
Hard |
66 | Plus One | Array Math |
Easy |
67 | Add Binary | Math String |
Easy |
68 | Text Justification | String |
Hard |
69 | Sqrt(x) | Math Binary Search |
Easy |
70 | Climbing Stairs | Dynamic Programing |
Easy |
71 | Simplify Path | String Stack |
Medium |
72 | Edit Distance | String Dynamic Programming |
Hard |
73 | Set Matrix Zeroes | Array |
Medium |
74 | Search a 2D Matrix | Array Binary Search |
Medium |
75 | Sort Colors | Array Two Pointers Sort |
Medium |
76 | Minimum Window Substring | String Hash Table Two Poniters |
Hard |
77 | Combinations | Backtracking |
Medium |
78 | Subsets | Backtracking Array Bit manipulation |
Medium |
79 | Word Search | Array Backtracking |
Medium |
80 | Remove Duplicates from Sorted Array II | Array Two Pointers |
Medium |
83 | Remove Duplicates from Sorted List | Linked List |
Easy |
84 | Largest Rectangle in Histogram | Stack Array |
Hard |
88 | Merge Sorted Array | Array Two Pointer |
Easy |
89 | Gray Code | Backtracking |
Medium |
94 | Binary Tree Inorder Traversal | Hash Tabke Stack Tree |
Medium |
98 | Validate Binary Search Tree | Tree Depth-First Search |
Medium |
100 | Same Tree | Tree Depth-First Search |
Easy |
104 | Maximum Depth of Binary Tree | Tree Depth-First Search |
Easy |
105 | Construct Binary Tree from Preorder and Inorder Traversal | Array Tree Depth-First Search |
Medium |
106 | Construct Binary Tree from Inorder and Postorder Traversal | Array Tree Depth-First Search |
Medium |
108 | Convert Sorted Array to Binary Search Tree | Tree Depth-First Search |
Easy |
110 | Balanced Binary Tree | Tree Depth-First Search |
Easy |
111 | Minimum Depth of Binary Tree | Tree Depth-First Search BFS |
Easy |
112 | Path Sum | Tree Depth-First Search |
Easy |
113 | Path Sum II | Tree Depth-First Search |
Medium |
118 | Pascal's Triangle | Array |
Easy |
119 | Pascal's Triangle II | Array |
Easy |
120 | Triangle | Array Dynamic Programing |
Medium |
121 | Best Time to Buy and Sell Stock | Array Dynamic-Programming |
Easy |
122 | Best Time to Buy and Sell Stock II | Array Greedy |
Easy |
125 | Valid Palindrome | String Two Pointers |
Easy |
130 | Surrounded Regions | DFS BFS Union-Find |
Medium |
139 | Word Break | Dynamic Programing |
Medium |
136 | Single Number | Bit manipulation |
Easy |
148 | Sort List | Linked List Sort |
Medium |
155 | Min Stack | Stack Design |
Easy |
160 | Intersection of Two Linked Lists | LinkedList |
Easy |
169 | Majority Element | Array Bit manipulation Divide and Conquer |
Easy |
198 | House Robber | Dynamic Programming |
Easy |
199 | Binary Tree Right Side View | Tree DFS BFS |
Medium |
215 | Kth Largest Element in an Array | Divide and Conquer Heap |
Medium |
242 | Valid Anagram | Hash Table Sort |
Easy |
263 | Ugly Number | Math |
Easy |
263 | Find Median from Data Stream | Heap Dessign |
Hard |
303 | Range Sum Query - Immutable | Dynamic Programing |
Easy |
304 | Range Sum Query 2D - Immutable | Dynamic Programing |
Medium |
307 | Range Sum Query - Mutable | Binary Indexed Tree Segment Tree |
Medium |
309 | Best Time to Buy and Sell Stock with Cooldown | Dynamic Programing |
Medium |
344 | Reverse String | String |
Easy |
387 | First Unique Character in a String | Hash Table String |
Easy |
421 | Maximum XOR of Two Numbers in an Array | Trie |
Medium |
437 | Path Sum II | Tree |
Easy |
461 | Hamming Distance | Bit manipulation |
Easy |
494 | Target Sum | Dynamic Programing DFS |
Medium |
530 | Minimum Absolute Difference in BST | Binary Search Tree |
Easy |
530 | K-diff Pairs in an Array | Array Two Pointers |
Easy |
554 | Brick Wall | Hash Table |
Medium |
557 | Reverse Words in a String III | String |
Easy |
693 | Binary Number with Alternating Bits) | Bit manipulation |
Easy |
724 | Find Pivot Index | Array |
Easy |
725 | Split Linked List in Parts | Linked List |
Medium |
738 | Monotone Increasing Digits | Greedy |
Medium |
739 | Daily Temperatures | Hash Table Array |
Medium |
743 | Network Delay Time | Heap DFS BFS Graph |
Medium |
766 | Toeplitz Matrix | Array |
Easy |
767 | Reorganize String | String Heap Greedy Sort |
Medium |
804 | Unique Morse Code Words | String |
Easy |
842 | Split Array into Fibonacci Sequence | String Backtracking Greedy |
Medium |
844 | Backspace String Compare | Stack Two Pointers |
Easy |
896 | Monotonic Array | Array |
Easy |
897 | Increasing Binary Search Tree | Binary Search Tree Depth-first Search |
Easy |
921 | Minimum Add to Make Parentheses Valid | String Stack |
Medium |
922 | Sort Array By Parity II | Array |
Easy |