Skip to content

awangdev/leet-code

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

About

Java Solutions to problems on LintCode/LeetCode

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors

Languages