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

Appearance settings

msoild/LintCode

Open more actions menu
 
 

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

About

Java Solutions to problems on LintCode/LeetCode

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.