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

About

Java Solutions to problems on LintCode/LeetCode


Languages

Language:Java 100.0%