Skip to content

Java Solutions to problems on LintCode/LeetCode

Notifications You must be signed in to change notification settings

msoild/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 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

No packages published

Languages

  • Java 100.0%