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

About

Java Solutions to problems on LintCode/LeetCode

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages