Skip to content

gerrylin/LintCode

Repository files navigation

Java Algorithm Problems

程序员的一天

从开始这个Github已经有将近两年时间, 很高兴这个repo可以帮到有需要的人. 我一直认为, 知识本身是无价的, 因此每逢闲暇, 我就会来维护这个repo, 给刷题的朋友们一些我的想法和见解. 下面来简单介绍一下这个repo:

README.md: 所有所做过的题目

ReviewPage.md: 所有题目的总结和归纳(不断完善中)

KnowledgeHash2.md: 对所做过的知识点的一些笔记

SystemDesign.md: 对系统设计的一些笔记

Future Milestone: 我准备将一些有意思的题目,做成视频的形式给大家参考

希望大家学习顺利, 对未来充满希望(程序员也是找到好老板的!) 有问题可以给我写邮件([email protected]), 或者在GitHub上发issue给我.

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

About

Java Solutions to problems on LintCode/LeetCode

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%