Skip to content

awangdev/leet-code

Repository files navigation

Java Algorithm Problems

程序员的一天

从开始这个Github已经有将近两年时间, 很高兴这个repo可以帮到有需要的人. 我一直认为, 知识本身是无价的, 因此每逢闲暇, 我就会来维护这个repo, 给刷题的朋友们一些我的想法和见解. 下面来简单介绍一下这个repo:

README.md: 所有所做过的题目

ReviewPage.md: 所有题目的总结和归纳(不断完善中)

KnowledgeHash2.md: 对所做过的知识点的一些笔记

SystemDesign.md: 对系统设计的一些笔记

Future Milestone: 我准备将一些有意思的题目,做成视频的形式给大家参考

希望大家学习顺利, 对未来充满希望(程序员也是找到好老板的!) 有问题可以给我写邮件(wangdeve@gmail.com), 或者在GitHub上发issue给我.

Squence Problem Level Language Tags Video Tutorial
0 Binary Representation.java Hard Java []
1 Binary Tree Zigzag Level Order Traversal.java Medium Java [BFS, Stack, Tree]
2 Construct Binary Tree from Inorder and Postorder Traversal.java Medium Java [Array, DFS, Tree]
3 Count of Smaller Number before itself.java Hard Java []
4 Count of Smaller Number.java Review Java [Binary Search, Segment Tree]
5 Delete Digits.java Medium Java []
6 Find the Weak Connected Component in the Directed Graph.java Medium Java [Union Find]
7 Flatten 2D Vector.java Medium Java [Design]
8 Fraction to Recurring Decimal.java Medium Java [Hash Table, Math]
9 Generate Parentheses.java Medium Java [Backtracking, DFS, String]
10 Gray Code.java Medium Java [Backtracking]
11 Group Shifted Strings.java Easy Java []
12 H-Index.java Medium Java [Hash Table, Sort]
13 Hamming Distance.java Easy Java []
14 Happy Number.java Easy Java []
15 HashHeap.java Hard Java []
16 HashWithArray.java Easy Java []
17 Heapify.java Review Java [Heap]
18 Heaters.java Easy Java []
19 IndexMatch.java Easy Java []
20 Inorder Successor in Binary Search Tree.java Medium Java [BST, Tree]
21 Insert Interval.java Easy Java []
22 Insert Node in a Binary Search Tree .java Easy Java [BST]
23 Intersection of Two Arrays.java Easy Java []
24 Intersection of Two Linked Lists.java Easy Java [Linked List]
25 Interval Sum II.java Hard Java []
26 Isomorphic Strings.java Easy Java []
27 Jewels and Stones.java Easy Java [Hash Table]
28 Kth Largest Element.java Review Java [Divide and Conquer, Heap, Quick Sort]
29 Kth Smallest Sum In Two Sorted Arrays.java Hard Java []
30 Longest Palindromic Substring.java Review Java [DP, String]
31 Longest Univalue Path.java Easy Java []
32 Majority Number II.java Medium Java [Enumeration, Greedy]
33 Majority Number III.java Medium Java [Hash Table, Linked List]
34 Matrix Zigzag Traversal.java Easy Java []
35 Max Area of Island.java Easy Java []
36 Maximum Subarray III.java Review Java []
37 Median of two Sorted Arrays.java Hard Java []
38 Minimum Absolute Difference in BST.java Easy Java [BST]
39 Minimum Height Trees.java Medium Java [BFS, Graph]
40 Minimum Subarray.java Easy Java [Array, Greedy]
41 Missing Ranges.java Medium Java [Array]
42 Multiply Strings.java Medium Java [Math, String]
43 Next Permutation.java Medium Java [Array]
44 O(1) Check Power of 2.java Easy Java [Bit Manipulation]
45 Paint Fence.java Easy Java []
46 Palindrome Permutation II.java Medium Java [Backtracking, Permutation]
47 Partition Array by Odd and Even.java Easy Java [Array, Two Pointers]
48 Pascal's Triangle II.java Easy Java []
49 Permutation Index.java Easy Java []
50 Permutation Sequence.java Medium Java [Backtracking, Math]
51 Populating Next Right Pointers in Each Node II.java Hard Java []
52 Product of Array Exclude Itself.java Medium Java [Array]
53 Recover Rotated Sorted Array.java Easy Java [Array]
54 Remove Duplicates from Unsorted List.java Medium Java [Linked List]
55 Remove Invalid Parentheses.java Hard Java []
56 Remove Node in Binary Search Tree.java Hard Java [BST]
57 Reshape the Matrix.java Easy Java []
58 Reverse String.java Easy Java []
59 Roman to Integer.java Easy Java []
60 Rotate Image.java Medium Java [Array, Enumeration]
61 Search Insert Position.java Easy Java []
62 Search Rotated in Sorted Array II.java Medium Java [Array, Binary Search]
63 Search Rotated in Sorted Array.java Hard Java []
64 Shortest Word Distance.java Easy Java []
65 Single Number II.java Medium Java [Bit Manipulation]
66 Single Number III.java Medium Java [Bit Manipulation]
67 Single Number.java Easy Java []
68 Sliding Window Maximum.java Hard Java []
69 Sort Color.java Medium Java [Array, Sort, Two Pointers]
70 Sort Colors II.java Medium Java [Sort, Two Pointers]
71 Sort Letters by Case.java Medium Java [Sort, String, Two Pointers]
72 Space Replacement.java Medium Java [String]
73 Stone Game.java Medium Java [DP]
74 String Permutation.java Easy Java []
75 String to Integer(atoi).java Easy Java []
76 Strobogrammatic Number II.java Medium Java [DFS, Math]
77 Strobogrammatic Number.java Easy Java []
78 Subarray Sum Closest.java Medium Java [Sort]
79 Subarray Sum.java Easy Java []
80 The Smallest Difference.java Medium Java [Array, Sort, Two Pointers]
81 Total Occurrence of Target.java Medium Java []
82 Trailing Zeros.java Easy Java [Math]
83 Triangles.java Medium Java [Array, DP]
84 Two Lists Sum.java Medium Java [Linked List]
85 Two Strings Are Anagrams.java Easy Java []
86 Ugly Number II.java Medium Java [DP, Heap, Math]
87 Valid Parentheses.java Easy Java []
88 Valid Sudoku.java Easy Java []
89 Word Ladder II.java Hard Java []
90 Word Pattern.java Easy Java []
91 Zigzag Iterator.java Medium Java [BST]
92 Find Anagram Mappings.java Easy Java [Hash Table]
93 Judge Route Circle.java Easy Java [String]
94 Island Perimeter.java Easy Java [Hash Table]
95 First Unique Character in a String.java Easy Java [Hash Table, String]
96 Power of Three.java Easy Java [Math]
97 Plus One.java Easy Java [Array, Math]
98 Power of Two.java Easy Java [Bit Manipulation, Math]
99 Reverse Vowels of a String.java Easy Java [String, Two Pointers]
100 Guess Number Higher or Lower.java Easy Java [Binary Search]
101 Encode and Decode TinyURL.java Medium Java [Hash Table, Math]
102 Wiggle Sort.java Medium Java [Array, Sort]
103 Queue Reconstruction by Height.java Medium Java [Greedy]
104 2 Sum.java Easy Java [Array, Hash Table]
105 2 Sum II - Input array is sorted.java Medium Java [Array, Binary Search, Two Pointers]
106 2 Sum II.java Medium Java [Array, Binary Search, Two Pointers]
107 Coin Change.java Medium Java [DP, Memoization, Sequence DP]
108 Maximum Product Subarray.java Medium Java [Array, DP]
109 3 Sum Closest.java Medium Java [Array, Two Pointers]
110 Triangle Count.java Medium Java [Array]
111 3 Sum.java Medium Java [Array, Two Pointers]
112 4 Sum.java Medium Java [Hash Table]
113 k Sum.java Hard Java [DP]
114 Longest Increasing Subsequence.java Medium Java [Binary Search, Coordinate DP, DP, Memoization, Sequence DP]
115 Unique Binary Search Tree.java Medium Java [BST, DP, Tree]
116 Trim a Binary Search Tree.java Easy Java [BST, Tree]
117 Unique Paths II.java Medium Java [Array, Coordinate DP, DP]
118 Bomb Enemy.java Medium Java [Coordinate DP, DP]
119 3 Sum Smaller.java Medium Java [Array, Two Pointers]
120 Array Partition I.java Easy Java [Array]
121 1-bit and 2-bit Characters.java Easy Java [Array]
122 Non-decreasing Array.java Easy Java [Array]
123 Max Consecutive Ones.java Easy Java [Array]
124 Find All Numbers Disappeared in an Array.java Easy Java [Array]
125 Maximum Average Subarray I.java Easy Java [Array]
126 Largest Number At Least Twice of Others.java Easy Java [Array]
127 Toeplitz Matrix.java Easy Java [Array]
128 Sum of Two Integers.java Easy Java [Bit Manipulation]
129 Swap Bits.java Easy Java [Bit Manipulation]
130 Update Bits.java Medium Java [Bit Manipulation]
131 Maximum XOR of Two Numbers in an Array.java Medium Java [Bit Manipulation, Trie]
132 Perfect Squares.java Medium Java [BFS, DP, Math, Partition DP]
133 Backpack VI.java Medium Java [Backpack DP, DP]
134 Copy Books.java Hard Java [Binary Search, DP, Partition DP]
135 Valid Perfect Square.java Review Java [Binary Search, Math]
136 Intersection of Two Arrays II.java Easy Java [Binary Search, Hash Table, Sort, Two Pointers]
137 Longest Palindromic Subsequence.java Medium Java [DP, Interval DP, Memoization]
138 Scramble String.java Hard Java [DP, Interval DP, String]
139 Binary Search Tree Iterator.java Medium Java [BST, Design, Stack, Tree]
140 Flatten Nested List Iterator.java Medium Java [Design, Stack]
141 Best Time to Buy and Sell Stock with Cooldown.java Medium Java [DP]
142 Find Peak Element.java Medium Java [Array, Binary Search]
143 Longest Common Subsequence.java Medium Java [DP, Double Sequence DP]
144 Interleaving String.java Hard Java [DP, String]
145 Letter Combinations of a Phone Number.java Medium Java [Backtracking, String]
146 Edit Distance.java Hard Java [DP, Double Sequence DP, String]
147 Distinct Subsequences.java Hard Java [DP, String]
148 Regular Expression Matching.java Review Java [Backtracking, DP, String]
149 Majority Element.java Easy Java [Array, Bit Manipulation, Divide and Conquer]
150 Wildcard Matching.java Hard Java [Backtracking, DP, Greedy, String]
151 Ones and Zeroes.java Hard Java [DP]
152 Pow(x,n).java Medium Java [Binary Search, Math]
153 Word Break II.java Review Java [Backtracking, DP]
154 Nested List Weight Sum.java Easy Java [BFS, DFS]
155 Same Tree.java Easy Java [DFS, Tree]
156 Convert Sorted Array to Binary Search Tree.java Easy Java [DFS, Divide and Conquer, Tree]
157 Construct Binary Tree from Inorder and Preorder Traversal.java Medium Java [Array, DFS, Divide and Conquer, Tree]
158 Add Binary.java Easy Java [Math, String]
159 Add Digits.java Easy Java [Math]
160 Add Two Numbers.java Medium Java [Linked List, Math]
161 Add Two Numbers II.java Medium Java [Linked List]
162 Balanced Binary Tree.java Medium Java [DFS, Tree]
163 Valid Anagram.java Easy Java [Hash Table, Sort]
164 Populating Next Right Pointers in Each Node.java Medium Java [DFS, Tree]
165 Validate Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Tree]
166 Convert Sorted List to Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Linked List]
167 Flatten Binary Tree to Linked List.java Medium Java [Binary Tree, DFS]
168 Binary Tree Paths.java Easy Java [Backtracking, Binary Tree, DFS]
169 Minimum Size Subarray Sum.java Medium Java [Array, Binary Search, Two Pointers]
170 Clone Graph.java Medium Java [BFS, DFS, Graph]
171 Longest Substring Without Repeating Characters.java Medium Java [Hash Table, String, Two Pointers]
172 Minimum Window Substring.java Hard Java [Hash Table, String, Two Pointers]
173 Linked List Cycle.java Easy Java [Linked List, Two Pointers]
174 Remove Nth Node From End of List.java Medium Java [Linked List, Two Pointers]
175 Longest Substring with At Most K Distinct Characters.java Medium Java [Hash Table, String]
176 Linked List Cycle II.java Medium Java [Linked List, Two Pointers]
177 Kth Smallest Number in Sorted Matrix.java Medium Java [Binary Search, Heap]
178 Find Minimum in Rotated Sorted Array.java Medium Java [Array, Binary Search]
179 Find Minimum in Rotated Sorted Array II.java Hard Java [Array, Binary Search]
180 Connecting Graph.java Medium Java [Union Find]
181 Connecting Graph II.java Medium Java [Union Find]
182 Connecting Graph III.java Medium Java [Union Find]
183 Number of Islands.java Medium Java [BFS, DFS, Union Find]
184 Number of Islands II.java Hard Java [Union Find]
185 Surrounded Regions.java Review Java [BFS, DFS, Union Find]
186 Implement Trie.java Medium Java [Design, Trie]
187 Add and Search Word.java Medium Java [Backtracking, Design, Trie]
188 Word Search II.java Hard Java [Backtracking, DFS, Trie]
189 Word Search.java Medium Java [Array, Backtracking]
190 Word Squares.java Hard Java [Backtracking, Trie]
191 Trapping Rain Water.java Hard Java [Array, Stack, Two Pointers]
192 Trapping Rain Water II.java Hard Java [BFS, Heap]
193 Data Stream Median.java Hard Java [Design, Heap]
194 Sliding Window Median.java Hard Java [Design, Heap]
195 Min Stack.java Easy Java [Design, Stack]
196 Implement Queue using Stacks.java Easy Java [Design, Stack]
197 Expression Expand.java Medium Java [DFS, Divide and Conquer, Stack]
198 Largest Rectangle in Histogram.java Hard Java [Array, Monotonous Stack, Stack]
199 Maximum Binary Tree.java Medium Java [Stack, Tree]
200 Reverse Integer.java Easy Java [Math]
201 Swap Nodes in Pairs.java Medium Java [Linked List]
202 Find Peak Element II.java Hard Java [Binary Search, DFS, Divide and Conquer]
203 Sqrt(x).java Easy Java [Binary Search, Math]
204 First Bad Version.java Easy Java [Binary Search]
205 Wood Cut.java Medium Java [Binary Search]
206 Find the Duplicate Number.java Medium Java [Array, Binary Search, Two Pointers]
207 Palindrome Pairs.java Hard Java [Hash Table, String, Trie]
208 Game of Life.java Medium Java [Array]
209 Maximum Average Subarray II.java Review Java [Array, Binary Search]
210 Meeting Rooms.java Easy Java [Sort, Sweep Line]
211 Number of Airplane in the sky.java Medium Java [Array, Interval, Sort, Sweep Line]
212 Meeting Rooms II.java Medium Java [Greedy, Heap, Sort, Sweep Line]
213 Building Outline.java Review Java [Binary Indexed Tree, Divide and Conquer, Heap, Segment Tree, Sweep Line]
214 Unique Path.java Medium Java [Array, Coordinate DP, DP]
215 Maximal Rectangle.java Hard Java [Array, DP, Hash Table, Stack]
216 Maximal Square.java Medium Java [Coordinate DP, DP]
217 Longest Increasing Path in a Matrix.java Hard Java [DFS, DP, Memoization, Topological Sort]
218 Coins in a Line.java Medium Java [DP, Game Theory, Greedy]
219 Coins in a Line II.java Medium Java [Array, DP, Game Theory, Memoization, MiniMax]
220 Binary Tree Inorder Traversal.java Easy Java [Hash Table, Stack, Tree]
221 Binary Tree Postorder Traversal.java Medium Java [Stack, Tree, Two Stacks]
222 Change to Anagram.java Easy Java [String]
223 Classical Binary Search.java Easy Java [Binary Search]
224 Climbing Stairs.java Easy Java [DP, Memoization, Sequence DP]
225 Coins in a Line III.java Hard Java [Array, DP, Game Theory, Interval DP, Memoization]
226 Closest Binary Search Tree Value.java Easy Java [BST, Binary Search, Tree]
227 Compare Version Numbers.java Medium Java [String]
228 Count Complete Tree Nodes.java Medium Java [Binary Search, Tree]
229 Course Schedule.java Medium Java [BFS, Backtracking, DFS, Graph, Topological Sort]
230 Course Schedule II.java Medium Java [BFS, DFS, Graph, Topological Sort]
231 Alien Dictionary.java Hard Java [BFS, Backtracking, DFS, Graph, Topological Sort]
232 Binary Tree Preorder Traversal.java Easy Java [BFS, DFS, Stack, Tree]
233 Closest Number in Sorted Array.java Easy Java [Binary Search]
234 Complete Binary Tree.java Easy Java [BFS, Tree]
235 Compare Strings.java Easy Java [String]
236 Contains Duplicate.java Easy Java [Array, Hash Table]
237 Contains Duplicate II.java Easy Java [Array, Hash Table]
238 Contains Duplicate III.java Medium Java [BST]
239 Burst Balloons.java Hard Java [DP, Divide and Conquer, Interval DP, Memoization]
240 Nim Game.java Easy Java [Brainteaser, DP, Game Theory]
241 Convert Integer A to Integer B.java Easy Java [Bit Manipulation]
242 Cosine Similarity.java Easy Java [Basic Implementation]
243 Count 1 in Binary.java Easy Java [Bit Manipulation]
244 Count and Say.java Easy Java [Basic Implementation, String]
245 One Edit Distance.java Medium Java [String]
246 K Edit Distance.java Hard Java [DP, Double Sequence DP, Trie]
247 Jump Game.java Medium Java [Array, DP, Greedy]
248 Coin Change 2.java Medium Java [DP, Sequence DP]
249 Paint House.java Easy Java [DP, Sequence DP]
250 Decode Ways.java Medium Java [DP, Partition DP, String]
251 Longest Continuous Increasing Subsequence.java Easy Java [Array, Coordinate DP, DP]
252 Minimum Path Sum.java Medium Java [Array, Coordinate DP, DP]
253 Counting Bits.java Medium Java [Bit Manipulation, Bitwise DP, DP]
254 Continuous Subarray Sum.java Medium Java [Coordinate DP, DP, Math]
255 House Robber.java Easy Java [DP, Sequence DP]
256 House Robber II.java Medium Java [DP, Sequence DP]
257 House Robber III.java Medium Java [DFS, DP, Status DP, Tree]
258 Paint House II.java Hard Java [DP, Sequence DP]
259 Best Time to Buy and Sell Stock I.java Easy Java [Array, DP, Sequence DP]
260 Best Time to Buy and Sell Stock II.java Easy Java [Array, DP, Greedy, Sequence DP]
261 Best Time to Buy and Sell Stock III .java Hard Java [Array, DP, Sequence DP]
262 Best Time to Buy and Sell Stock IV.java Hard Java [DP, Sequence DP]
263 Russian Doll Envelopes.java Hard Java [Binary Search, Coordinate DP, DP]
264 Jump Game II.java Hard Java [Array, Coordinate DP, DP, Greedy]
265 Palindrome Partitioning.java Medium Java [Backtracking, DFS]
266 Permutation in String.java Medium Java [Two Pointers]
267 Permutations II.java Medium Java [Backtracking]
268 Shuffle an Array.java Medium Java [Permutation]
269 Find All Anagrams in a String.java Easy Java [Hash Table]
270 Group Anagrams.java Medium Java [Hash Table, String]
271 Backpack.java Medium Java [Backpack DP, DP]
272 Backpack II.java Medium Java [Backpack DP, DP]
273 Backpack V.java Medium Java [Backpack DP, DP]
274 Count Primes.java Easy Java [Hash Table, Math]
275 Delete Node in a Linked List.java Easy Java [Linked List]
276 Excel Sheet Column Number.java Easy Java [Math]
277 Excel Sheet Column Title.java Easy Java [Math]
278 Flip Game.java Easy Java [String]
279 Flip Game II.java Review Java [DFS, backtracking]
280 Expression Tree Build.java Hard Java [Binary Tree, Expression Tree, Minimum Binary Tree, Stack]
281 Expression Evaluation.java Hard Java [Binary Tree, DFS, Expression Tree, Minimum Binary Tree, Stack]
282 Convert Expression to Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
283 Convert Expression to Reverse Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
284 Evaluate Reverse Polish Notation.java Medium Java [Stack]
285 Decode Ways II.java Hard Java [DP, Partition DP]
286 Palindrome Partitioning II.java Hard Java [DP, Partition DP]
287 Backpack III.java Hard Java [Backpack DP, DP]
288 First Missing Positive.java Hard Java [Array]
289 Gas Station.java Medium Java [Greedy]
290 Implement strStr().java Easy Java [String, Two Pointers]
291 Insertion Sort List.java Medium Java [Linked List, Sort]
292 Integer to English Words.java Hard Java [Math, String]
293 Interleaving Positive and Negative Numbers.java Medium Java [Two Pointers]
294 Largest Number.java Medium Java [Sort]
295 Last Position of Target.java Easy Java [Binary Search]
296 Length of Last Word.java Easy Java [String]
297 Longest Common Substring.java Medium Java [DP, Double Sequence DP, String]
298 Longest Increasing Continuous subsequence.java Easy Java [Array, Coordinate DP, DP]
299 Longest Increasing Continuous subsequence II.java Medium Java [Array, Coordinate DP, DP, Memoization]
300 N-Queens.java Hard Java [Backtracking]
301 N-Queens II.java Hard Java [Backtracking]
302 Longest Words.java Easy Java [Hash Map, String]
303 Maximum Subarray.java Easy Java [Array, DFS, DP, Divide and Conquer, Sequence DP]
304 Maximum Subarray II.java Medium Java [Array, DP, Greedy, Sequence DP]
305 Median.java Easy Java [Array, Quick Select, Quick Sort]
306 Merge Sorted Array.java Easy Java [Array, Two Pointers]
307 Middle of Linked List.java Easy Java [Linked List]
308 Singleton.java Easy Java [Design]
309 Remove Linked List Elements.java Easy Java [Linked List]
310 Fibonacci.java Easy Java [DP, Math, Memoization]
311 Palindrome Linked List.java Easy Java [Linked List, Two Pointers]
312 Reverse Linked List.java Easy Java [Linked List]
313 Reverse Linked List II .java Medium Java [Linked List]
314 Palindrome Permutation.java Easy Java [Hash Table]
315 Valid Palindrome.java Easy Java [String, Two Pointers]
316 Implement Stack using Queues.java Easy Java [Design, Stack]
317 Implement Stack.java Easy Java [Stack]
318 Invert Binary Tree.java Easy Java [BFS, DFS, Tree]
319 Maximum Depth of Binary Tree.java Easy Java [DFS, Tree]
320 Minimum Depth of Binary Tree.java Easy Java [BFS, DFS, Tree]
321 Symmetric Tree.java Easy Java [BFS, DFS, Tree]
322 Tweaked Identical Binary Tree.java Easy Java [DFS, Tree]
323 Merge Two Binary Trees.java Easy Java [DFS, Tree]
324 Subtree.java Easy Java [DFS, Tree]
325 Lowest Common Ancestor of a Binary Tree.java Medium Java [DFS, Tree]
326 Lowest Common Ancestor II.java Easy Java [Hash Table, Tree]
327 Lowest Common Ancestor of a Binary Search Tree.java Medium Java [BST, DFS, Tree]
328 Merge Intervals.java Medium Java [Array, Sort, Sweep Line]
329 Hash Function.java Easy Java [Hash Table]
330 Merge Two Sorted Lists.java Easy Java [Linked List]
331 Missing Number.java Easy Java [Array, Bit Manipulation, Math]
332 LRU Cache.java Hard Java [Design, Hash Table, Linked List]
333 Remove Duplicates from Sorted Array.java Easy Java [Array, Two Pointers]
334 Remove Duplicates from Sorted Array II.java Medium Java [Array, Two Pointers]
335 Remove Duplicates from Sorted List.java Easy Java [Linked List]
336 Remove Duplicates from Sorted List II.java Medium Java [Linked List]
337 QuickSort.java Medium Java [Sort]
338 MergeSort.java Medium Java [Merge Sort, Sort]
339 Longest Word in Dictionary.java Easy Java [Hash Table, Trie]
340 Anagrams.java Medium Java [Array, Hash Map]
341 Binary Tree Level Order Traversal.java Medium Java [BFS, DFS, Tree]
342 Binary Tree Level Order Traversal II.java Medium Java [BFS, Tree]
343 Binary Tree Longest Consecutive Sequence II.java Medium Java [DFS, Divide and Conquer, Double Recursive, Tree]
344 Binary Tree Maximum Path Sum.java Hard Java [DFS, Tree]
345 Path Sum.java Easy Java [DFS, Tree]
346 Path Sum II.java Easy Java [Backtracking, DFS, Tree]
347 Path Sum III.java Easy Java [DFS, Double Recursive, Tree]
348 Rotate String.java Easy Java [String]
349 Path Sum IV.java Medium Java [DFS, Hash Map, Tree]
350 Combinations.java Medium Java [Backtracking, Combination, DFS]
351 Combination Sum.java Medium Java [Array, Backtracking, Combination, DFS]
352 Combination Sum II.java Medium Java [Array, Backtracking, Combination, DFS]
353 Combination Sum III.java Medium Java [Array, Backtracking, Combination, DFS]
354 Combination Sum IV.java Medium Java [Array, Backpack DP, DP]
355 Subset.java Medium Java [Array, BFS, Backtracking, Bit Manipulation, DFS]
356 Subsets II.java Medium Java [Array, BFS, Backtracking, DFS]
357 Binary Tree Right Side View.java Medium Java [BFS, DFS, Tree]
358 Binary Tree Maximum Path Sum II.java Medium Java [DFS, Tree]
359 Rotate List.java Medium Java [Linked List, Two Pointers]
360 Basic Calculator.java Hard Java [Binary Tree, Expression Tree, Math, Minimum Binary Tree, Stack]
361 Longest Consecutive Sequence.java Hard Java [Array, Hash Table, Union Find]
362 Binary Tree Longest Consecutive Sequence.java Medium Java [DFS, Divide and Conquer, Tree]
363 Number of Connected Components in an Undirected Graph.java Medium Java [BFS, DFS, Graph, Union Find]
364 Graph Valid Tree.java Medium Java [BFS, DFS, Graph, Union Find]
365 Next Closest Time.java Medium Java [Basic Implementation, Enumeration, String]
366 Serilization and Deserialization Of Binary Tree.java Hard Java [BFS, DFS, Design, Tree]
367 Partition Array.java Medium Java [Array, Quick Sort, Sort, Two Pointers]
368 Word Ladder.java Medium Java [BFS]
369 Word Break.java Medium Java [DP, Sequence DP]
370 Unique Word Abbreviation.java Medium Java [Design, Hash Table]
371 Unique Binary Search Tree II.java Medium Java [BST, DP, Divide and Conquer, Tree]
372 Ugly Number.java Medium Java [Math]
373 Top K Frequent Words.java Medium Java [Hash Table, Heap, PriorityQueue, Trie]
374 Segment Tree Build.java Medium Java [Binary Tree, Divide and Conquer, Segment Tree]
375 Segment Tree Build II.java Medium Java [Binary Tree, Divide and Conquer, Segment Tree]
376 Segment Tree Query.java Medium Java [Binary Tree, DFS, Divide and Conquer, Segment Tree]
377 Segment Tree Modify.java Medium Java [Binary Tree, DFS, Divide and Conquer, Segment Tree]
378 Segment Tree Query II.java Medium Java [Binary Tree, DFS, Divide and Conquer, Segment Tree]
379 Count of Smaller Numbers After Self.java Review Java [BST, Binary Indexed Tree, Binary Search, Divide and Conquer, Segment Tree]
380 ColorGrid.java Medium Java [Design, Hash Table]
381 Container With Most Water.java Medium Java [Array, Two Pointers]
382 Convert Binary Search Tree to Doubly Linked List.java Medium Java [Linked List, Tree]
383 Copy List with Random Pointer.java Medium Java [Hash Table, Linked List]
384 Encode and Decode Strings.java Medium Java [String]
385 Fast Power.java Medium Java [DFS, Divide and Conquer]
386 Find the Connected Component in the Undirected Graph.java Medium Java [BFS, DFS]
387 H-Index II.java Medium Java [Binary Search]
388 HashWithCustomizedClass(LinkedList).java Medium Java [Hash Table]
389 Interval Minimum Number.java Medium Java [Binary Search, Divide and Conquer, Segment Tree]
390 Interval Sum.java Medium Java [Binary Search, Segment Tree]
391 Kth Smallest Element in a BST.java Medium Java [BST, DFS, Stack, Tree]
392 Longest Common Prefix.java Easy Java [String]
393 Majority Element II.java Medium Java [Array]
394 Merge k Sorted Lists.java Medium Java [Divide and Conquer, Heap, Linked List, PriorityQueue]
395 Merge k Sorted Arrays.java Medium Java [Heap, PriorityQueue]
396 Permutations.java Medium Java [Backtracking, DFS, Permutation]
397 Partition List.java Medium Java [Linked List, Two Pointers]
398 Peeking Iterator.java Medium Java [Design]
399 Rehashing.java Medium Java [Hash Table]
400 Reorder List.java Medium Java [Linked List]
401 Restore IP Addresses.java Medium Java [Backtracking, DFS, String]
402 Reverse Words in a String.java Medium Java [String]
403 Reverse Words in a String II.java Medium Java [String]
404 Reverse Words in a String III.java Easy Java [String]
405 Search a 2D Matrix.java Medium Java [Array, Binary Search]
406 Search a 2D Matrix II.java Medium Java [Binary Search, Divide and Conquer]
407 Search for a Range.java Medium Java [Array, Binary Search]
408 Search Range in Binary Search Tree .java Medium Java [BST, Binary Tree]
409 Merge Sorted Array II.java Easy Java [Array]
410 Nth to Last Node in List.java Easy Java [Linked List]
411 Unique Characters.java Easy Java [Array, String]
412 Sort List.java Medium Java [Divide and Conquer, Linked List, Merge Sort, Sort]
413 Summary Ranges.java Medium Java [Array]
414 Top K Frequent Elements.java Medium Java [Hash Table, Heap, PriorityQueue]
415 Topological Sorting.java Medium Java [BFS, DFS, Topological Sort]

About

Java Solutions to problems on LintCode/LeetCode

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors

Languages