Skip to content

Java Solutions to problems on LintCode/LeetCode

Notifications You must be signed in to change notification settings

RustLi/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给我.

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

About

Java Solutions to problems on LintCode/LeetCode

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java100.0%