ck2010 / LintCode

Java Solutions to problems on LintCode/LeetCode

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Java Solutions to problems on LintCode/LeetCode


Languages

Language:Java 100.0%