/LintCode

Java Solutions to problems on LintCode/LeetCode

Primary LanguageJava

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