Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

wanchong/LintCode

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

About

Java Solutions to problems on LintCode/LeetCode

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%

AltStyle によって変換されたページ (->オリジナル) /