-
understand meaning of problem and make sure edge case with interviewer
-
talk about solutions from scratch, brute force is ok
-
write code step by step concisely, avoid built-up function
-
time and space complexity
-
optimization
# | Title | Tag | Difficulty | Solution |
---|---|---|---|---|
2 | Add Two Numbers | linkedlist | Medium | Javascript |
8 | String to Integer (atoi) | string | Medium | Java |
15 | 3Sum | two pointers | Medium | Java |
20 | Valid Parentheses | stack | Easy | Java |
21 | Merge Two Sorted Lists | linkedlist | Easy | Javascript |
23 | Merge K Sorted Lists | linkedlist | Hard | Java |
32 | Longest Valid Parentheses | dp | Hard | Java |
33 | Search in Rotated Sorted Array | binary search | Medium | Java |
35 | Search Insert Position | binary search | Easy | Java |
39 | Combination Sum | backtrack | Medium | Java |
40 | Combination Sum II | backtrack | Medium | Java |
42 | Trapping Rain Water | two pointers | Hard | Java |
46 | Permutations | backtrack | Medium | Java |
47 | Permutations II | backtrack | Medium | Java |
49 | Group Anagrams | hashtable | Medium | Java |
53 | Maximum Subarray | dp | Easy | Java/Javascript |
62 | Unique Paths | dp | Medium | Java |
63 | Unique Paths II | dp | Medium | Java |
67 | Add Binary | two pointers | Easy | Java |
70 | Climb Stairs | dp | Easy | Java/Javascript |
71 | Simplify Path | stack | Medium | Java |
77 | Combinations | backtrack | Medium | Java |
78 | Subsets | backtrack | Meidum | Java |
82 | Remove Duplicates from Sorted List | linkedlist | Easy | Java |
83 | Remove Duplicates from Sorted List II | linkedlist | Meidum | Java |
88 | Merge Sorted Array | two pointers | Easy | Java |
90 | Subsets II | backtrack | Meidum | Java |
94 | Binary Tree Inorder Traversal | tree | Medium | Java/Javascript |
98 | Validate Binary Search Tree | tree | Medium | Java |
102 | Binary Tree Level Order Traversal | bfs | Medium | Java |
103 | Binary Tree Zigzag Level Order Traversal | bfs | Medium | Java |
105 | Construct Binary Tree from Preorder and Inorder Traversal | dfs | Medium | Java |
110 | Balanced Binary Tree | dfs | Medium | Java |
112 | Path Sum | dfs | Easy | Java |
129 | Sum Root to Leaf Numbers | dfs | Medium | Java |
133 | Clone Graph | graph | Medium | Java |
141 | Linked List Cycle | linkedlist | Easy | Java |
143 | Reorder List | linkedlist | Medium | Java |
144 | Binary Tree Preorder Traversal | tree | Medium | Java |
145 | Binary Tree Postorder Traversal | tree | Medium | Java |
146 | LRU Cache | design | Medium | Java |
148 | Sort List | sort -- merge/heap | Medium | Java |
152 | Maximum Product Subarray | dp | Medium | Javascript |
155 | Min Stack | stack | Easy | Java |
160 | Intersection of Two Linked Lists | linkedlist | Easy | Java |
198 | House Robber | dp | Easy | |
206 | Reverse Linked List | linkedlist | Easy | Java |
207 | Course Schedule | graph | Medium | Java |
210 | Course Schedule II | graph | Medium | Java |
215 | Kth Largest Element in an Array | sort -- quick/heap | Medium | Java |
221 | Maximal Square | dp | Medium | Java |
225 | Implement Stack using Queues | design | Easy | Java |
232 | Implement Queue using Stacks | design | Easy | Java |
234 | Palindrome Linked List | linkedlist | Easy | Java |
236 | Lowest Common Ancestor of a Binary Tree | dfs | Medium | Java |
240 | Search a 2D Matrix II | binary search | Medium | Java |
279 | Perfect Squares | dp | Medium | Java |
300 | Longest Increasing Subsequence | dp | Medium | |
322 | Coin Change | dp | Medium | Java |
328 | Odd Even Linked List | linkedlist | Medium | Java |
399 | Evaluate Division | graph | Medium | Java |
415 | Add Strings | string | Easy | Javascript |
417 | Pacific Atlantic Water Flow | dfs/bfs | Medium | Java |
435 | Non-overlapping Intervals | sort | Medium | Java |
518 | Coin Change 2 | dp | Medium | Java |
523 | Continuous Subarray Sum | dp | Medium | Java |
560 | Subarray Sum Equals K | dp | Medium | Java |
692 | Top K Frequent Words | sort | Medium | Java |
1143 | Longest Common Subsequence | dp | Medium | Java |