Skip to content
 
 

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

About

Java Solutions to problems on LintCode/LeetCode

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages