Skip to content

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

About

Java Solutions to problems on LintCode/LeetCode

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy