Skip to content

Latest commit

 

History

History
1885 lines (1430 loc) · 199 KB

File metadata and controls

1885 lines (1430 loc) · 199 KB

Table of Contents

Array (106)

Squence Problem Level Language Tags Video Tutorial
0 Missing Ranges.java Medium Java [Array]
1 Next Permutation.java Medium Java [Array]
2 Product of Array Exclude Itself.java Medium Java [Array]
3 Recover Rotated Sorted Array.java Easy Java [Array]
4 Triangle Count.java Medium Java [Array]
5 Array Partition I.java Easy Java [Array]
6 1-bit and 2-bit Characters.java Easy Java [Array]
7 Non-decreasing Array.java Easy Java [Array]
8 Max Consecutive Ones.java Easy Java [Array]
9 Find All Numbers Disappeared in an Array.java Easy Java [Array]
10 Largest Number At Least Twice of Others.java Easy Java [Array]
11 Toeplitz Matrix.java Easy Java [Array]
12 Game of Life.java Medium Java [Array]
13 First Missing Positive.java Hard Java [Array]
14 Majority Element II.java Medium Java [Array]
15 Merge Sorted Array II.java Easy Java [Array]
16 Summary Ranges.java Medium Java [Array]
17 Maximize Distance to Closest Person.java Easy Java [Array]
18 Subsets.java Medium Java [Array, BFS, Backtracking, Bit Manipulation, DFS]
19 Subsets II.java Medium Java [Array, BFS, Backtracking, DFS]
20 Word Ladder II.java Hard Java [Array, BFS, Backtracking, DFS, Hash Table, String]
21 Max Sum of Rectangle No Larger Than K.java Hard Java [Array, BST, Binary Search, DP, Queue, TreeSet]
22 K Empty Slots.java Hard Java [Array, BST, TreeSet]
23 Combination Sum IV.java Medium Java [Array, Backpack DP, DP]
24 Combination Sum.java Medium Java [Array, Backtracking, Combination, DFS]
25 Combination Sum II.java Medium Java [Array, Backtracking, Combination, DFS]
26 Combination Sum III.java Medium Java [Array, Backtracking, Combination, DFS]
27 Word Search.java Medium Java [Array, Backtracking, DFS]
28 Search in Rotated Sorted Array II.java Medium Java [Array, Binary Search]
29 Find Peak Element.java Medium Java [Array, Binary Search]
30 Find Minimum in Rotated Sorted Array.java Medium Java [Array, Binary Search]
31 Find Minimum in Rotated Sorted Array II.java Hard Java [Array, Binary Search]
32 Search a 2D Matrix.java Medium Java [Array, Binary Search]
33 Search for a Range.java Medium Java [Array, Binary Search]
34 Search in Rotated Sorted Array.java Medium Java [Array, Binary Search]
35 Median of Two Sorted Arrays.java Hard Java [Array, Binary Search, DFS, Divide and Conquer]
36 Maximum Average Subarray II.java Review Java [Array, Binary Search, PreSum]
37 Minimum Size Subarray Sum.java Medium Java [Array, Binary Search, Subarray, Two Pointers]
38 Subarray Sum II.java Hard Java [Array, Binary Search, Two Pointers]
39 Two Sum II - Input array is sorted.java Medium Java [Array, Binary Search, Two Pointers]
40 2 Sum II.java Medium Java [Array, Binary Search, Two Pointers]
41 Find the Duplicate Number.java Medium Java [Array, Binary Search, Two Pointers]
42 Majority Element.java Easy Java [Array, Bit Manipulation, Divide and Conquer]
43 Missing Number.java Easy Java [Array, Bit Manipulation, Math]
44 Triangles.java Medium Java [Array, Coordinate DP, DFS, DP, Memoization]
45 Unique Paths II.java Medium Java [Array, Coordinate DP, DP]
46 Unique Path.java Medium Java [Array, Coordinate DP, DP]
47 Longest Continuous Increasing Subsequence.java Easy Java [Array, Coordinate DP, DP]
48 Minimum Path Sum.java Medium Java [Array, Coordinate DP, DP]
49 Longest Increasing Continuous subsequence.java Easy Java [Array, Coordinate DP, DP]
50 Jump Game II.java Hard Java [Array, Coordinate DP, DP, Greedy]
51 Longest Increasing Continuous subsequence II.java Medium Java [Array, Coordinate DP, DP, Memoization]
52 Max Area of Island.java Easy Java [Array, DFS]
53 Maximum Subarray.java Easy Java [Array, DFS, DP, Divide and Conquer, PreSum, Sequence DP, Subarray]
54 Construct Binary Tree from Preorder and Inorder Traversal.java Medium Java [Array, DFS, Divide and Conquer, Hash Table, Tree]
55 Construct Binary Tree from Inorder and Postorder Traversal.java Medium Java [Array, DFS, Divide and Conquer, Tree]
56 Coins in a Line III.java Hard Java [Array, DP, Game Theory, Interval DP, Memoization]
57 Coins in a Line II.java Medium Java [Array, DP, Game Theory, Memoization, MiniMax]
58 Jump Game.java Medium Java [Array, DP, Greedy]
59 Maximum Subarray II.java Medium Java [Array, DP, Greedy, PreSum, Sequence DP, Subarray]
60 Best Time to Buy and Sell Stock II.java Easy Java [Array, DP, Greedy, Sequence DP, Status DP]
61 Best Time to Buy and Sell Stock with Transaction Fee.java Medium Java [Array, DP, Greedy, Sequence DP, Status DP]
62 Minimum Subarray.java Easy Java [Array, DP, Greedy, Sequence DP, Subarray]
63 Maximal Rectangle.java Hard Java [Array, DP, Hash Table, Stack]
64 Best Time to Buy and Sell Stock III.java Hard Java [Array, DP, Sequence DP]
65 Best Time to Buy and Sell Stock.java Easy Java [Array, DP, Sequence DP]
66 Maximum Product Subarray.java Medium Java [Array, DP, Subarray]
67 Insert Delete GetRandom O(1).java Medium Java [Array, Design, Hash Table]
68 Rotate Image.java Medium Java [Array, Enumeration]
69 Spiral Matrix.java Medium Java [Array, Enumeration]
70 Task Scheduler.java Medium Java [Array, Enumeration, Greedy, PriorityQueue, Queue]
71 Max Points on a Line.java Hard Java [Array, Geometry, Hash Table, Math]
72 Find the Celebrity.java Medium Java [Array, Greedy]
73 Contains Duplicate.java Easy Java [Array, Hash Table]
74 Contains Duplicate II.java Easy Java [Array, Hash Table]
75 Two Sum.java Easy Java [Array, Hash Table]
76 Anagrams.java Medium Java [Array, Hash Table]
77 Submatrix Sum.java Medium Java [Array, Hash Table, PreSum]
78 Subarray Sum.java Easy Java [Array, Hash Table, PreSum, Subarray]
79 Subarray Sum Equals K.java Medium Java [Array, Hash Table, PreSum, Subarray]
80 Longest Consecutive Sequence.java Hard Java [Array, Hash Table, Union Find]
81 Number of Airplane in the sky.java Medium Java [Array, Interval, PriorityQueue, Sort, Sweep Line]
82 Plus One.java Easy Java [Array, Math]
83 Friends Of Appropriate Ages.java Medium Java [Array, Math]
84 Largest Rectangle in Histogram.java Hard Java [Array, Monotonous Stack, Stack]
85 Sort Colors.java Medium Java [Array, Partition, Quick Sort, Sort, Two Pointers]
86 Product of Array Except Self.java Medium Java [Array, PreProduct]
87 Insert Interval.java Hard Java [Array, PriorityQueue, Sort]
88 Merge Intervals.java Medium Java [Array, PriorityQueue, Sort, Sweep Line]
89 Median.java Easy Java [Array, Quick Select, Quick Sort]
90 Partition Array.java Medium Java [Array, Quick Sort, Sort, Two Pointers]
91 Wiggle Sort.java Medium Java [Array, Sort]
92 The Smallest Difference.java Medium Java [Array, Sort, Two Pointers]
93 Trapping Rain Water.java Hard Java [Array, Stack, Two Pointers]
94 Unique Characters.java Easy Java [Array, String]
95 Maximum Average Subarray I.java Easy Java [Array, Subarray]
96 My Calendar I.java Medium Java [Array, TreeMap]
97 Partition Array by Odd and Even.java Easy Java [Array, Two Pointers]
98 3 Sum Closest.java Medium Java [Array, Two Pointers]
99 3Sum.java Medium Java [Array, Two Pointers]
100 3Sum Smaller.java Medium Java [Array, Two Pointers]
101 Remove Duplicates from Sorted Array.java Easy Java [Array, Two Pointers]
102 Remove Duplicates from Sorted Array II.java Medium Java [Array, Two Pointers]
103 Container With Most Water.java Medium Java [Array, Two Pointers]
104 Merge Sorted Array.java Easy Java [Array, Two Pointers]
105 Move Zeroes.java Easy Java [Array, Two Pointers]

DFS (87)

Squence Problem Level Language Tags Video Tutorial
0 Subsets.java Medium Java [Array, BFS, Backtracking, Bit Manipulation, DFS]
1 Subsets II.java Medium Java [Array, BFS, Backtracking, DFS]
2 Word Ladder II.java Hard Java [Array, BFS, Backtracking, DFS, Hash Table, String]
3 Combination Sum.java Medium Java [Array, Backtracking, Combination, DFS]
4 Combination Sum II.java Medium Java [Array, Backtracking, Combination, DFS]
5 Combination Sum III.java Medium Java [Array, Backtracking, Combination, DFS]
6 Word Search.java Medium Java [Array, Backtracking, DFS]
7 Median of Two Sorted Arrays.java Hard Java [Array, Binary Search, DFS, Divide and Conquer]
8 Triangles.java Medium Java [Array, Coordinate DP, DFS, DP, Memoization]
9 Max Area of Island.java Easy Java [Array, DFS]
10 Maximum Subarray.java Easy Java [Array, DFS, DP, Divide and Conquer, PreSum, Sequence DP, Subarray]
11 Construct Binary Tree from Preorder and Inorder Traversal.java Medium Java [Array, DFS, Divide and Conquer, Hash Table, Tree]
12 Construct Binary Tree from Inorder and Postorder Traversal.java Medium Java [Array, DFS, Divide and Conquer, Tree]
13 Course Schedule.java Medium Java [BFS, Backtracking, DFS, Graph, Topological Sort]
14 Alien Dictionary.java Hard Java [BFS, Backtracking, DFS, Graph, Topological Sort]
15 Nested List Weight Sum.java Easy Java [BFS, DFS]
16 Find the Connected Component in the Undirected Graph.java Medium Java [BFS, DFS]
17 Walls and Gates.java Medium Java [BFS, DFS]
18 Remove Invalid Parentheses.java Review Java [BFS, DFS, DP]
19 Serialize and Deserialize Binary Tree.java Hard Java [BFS, DFS, Deque, Design, Divide and Conquer, Tree]
20 Clone Graph.java Medium Java [BFS, DFS, Graph]
21 Course Schedule II.java Medium Java [BFS, DFS, Graph, Topological Sort]
22 Number of Connected Components in an Undirected Graph.java Medium Java [BFS, DFS, Graph, Union Find]
23 Graph Valid Tree.java Medium Java [BFS, DFS, Graph, Union Find]
24 Binary Tree Vertical Order Traversal.java Medium Java [BFS, DFS, Hash Table, Tree]
25 Number of Islands.java Medium Java [BFS, DFS, Matrix DFS, Union Find]
26 Surrounded Regions.java Medium Java [BFS, DFS, Matrix DFS, Union Find]
27 Binary Tree Preorder Traversal.java Easy Java [BFS, DFS, Stack, Tree]
28 Topological Sorting.java Medium Java [BFS, DFS, Topological Sort]
29 Invert Binary Tree.java Easy Java [BFS, DFS, Tree]
30 Minimum Depth of Binary Tree.java Easy Java [BFS, DFS, Tree]
31 Symmetric Tree.java Easy Java [BFS, DFS, Tree]
32 Binary Tree Level Order Traversal.java Medium Java [BFS, DFS, Tree]
33 Binary Tree Right Side View.java Medium Java [BFS, DFS, Tree]
34 Convert Sorted List to Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Linked List]
35 Convert Binary Search Tree to Sorted Doubly Linked List.java Medium Java [BST, DFS, Divide and Conquer, Linked List, Tree]
36 Validate Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Tree]
37 Kth Smallest Element in a BST.java Medium Java [BST, DFS, Stack, Tree]
38 Lowest Common Ancestor of a Binary Search Tree.java Medium Java [BST, DFS, Tree]
39 Recover Binary Search Tree.java Hard Java [BST, DFS, Tree]
40 Binary Tree Paths.java Easy Java [Backtracking, Binary Tree, DFS]
41 Combinations.java Medium Java [Backtracking, Combination, DFS]
42 Palindrome Partitioning.java Medium Java [Backtracking, DFS]
43 Flip Game II.java Medium Java [Backtracking, DFS, DP]
44 Word Break II.java Hard Java [Backtracking, DFS, DP, Hash Table, Memoization]
45 Expression Add Operators.java Hard Java [Backtracking, DFS, Divide and Conquer, String]
46 Permutations.java Medium Java [Backtracking, DFS, Permutation]
47 Generate Parentheses.java Medium Java [Backtracking, DFS, Sequence DFS, String]
48 Restore IP Addresses.java Medium Java [Backtracking, DFS, String]
49 Path Sum II.java Easy Java [Backtracking, DFS, Tree]
50 Word Search II.java Hard Java [Backtracking, DFS, Trie]
51 Find Peak Element II.java Hard Java [Binary Search, DFS, Divide and Conquer]
52 Flatten Binary Tree to Linked List.java Medium Java [Binary Tree, DFS]
53 Segment Tree Query.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
54 Segment Tree Modify.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
55 Segment Tree Query II.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
56 Expression Evaluation.java Hard Java [Binary Tree, DFS, Expression Tree, Minimum Binary Tree, Stack]
57 Convert Expression to Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
58 Convert Expression to Reverse Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
59 Longest Increasing Path in a Matrix.java Hard Java [Coordinate DP, DFS, DP, Memoization, Topological Sort]
60 Flood Fill.java Easy Java [DFS]
61 Target Sum.java Medium Java [DFS, DP]
62 Longest Palindromic Subsequence.java Medium Java [DFS, DP, Interval DP, Memoization]
63 House Robber III.java Medium Java [DFS, DP, Status DP, Tree]
64 Binary Tree Maximum Path Sum.java Hard Java [DFS, DP, Tree, Tree DP]
65 Fast Power.java Medium Java [DFS, Divide and Conquer]
66 Binary Tree Longest Consecutive Sequence II.java Medium Java [DFS, Divide and Conquer, Double Recursive, Tree]
67 Decode String.java Medium Java [DFS, Divide and Conquer, Stack]
68 Convert Sorted Array to Binary Search Tree.java Easy Java [DFS, Divide and Conquer, Tree]
69 Populating Next Right Pointers in Each Node.java Medium Java [DFS, Divide and Conquer, Tree]
70 Binary Tree Longest Consecutive Sequence.java Medium Java [DFS, Divide and Conquer, Tree]
71 Smallest Subtree with all the Deepest Nodes.java Medium Java [DFS, Divide and Conquer, Tree]
72 Subtree of Another Tree.java Easy Java [DFS, Divide and Conquer, Tree]
73 Path Sum III.java Easy Java [DFS, Double Recursive, Tree]
74 Strobogrammatic Number II.java Medium Java [DFS, Enumeration, Math, Sequence DFS]
75 Accounts Merge.java Medium Java [DFS, Hash Table, Hash Table, Union Find]
76 Path Sum IV.java Medium Java [DFS, Hash Table, Tree]
77 Same Tree.java Easy Java [DFS, Tree]
78 Balanced Binary Tree.java Medium Java [DFS, Tree]
79 Maximum Depth of Binary Tree.java Easy Java [DFS, Tree]
80 Tweaked Identical Binary Tree.java Easy Java [DFS, Tree]
81 Merge Two Binary Trees.java Easy Java [DFS, Tree]
82 Subtree.java Easy Java [DFS, Tree]
83 Lowest Common Ancestor of a Binary Tree.java Medium Java [DFS, Tree]
84 Path Sum.java Easy Java [DFS, Tree]
85 Binary Tree Maximum Path Sum II.java Medium Java [DFS, Tree]
86 Populating Next Right Pointers in Each Node II.java Medium Java [DFS, Tree]

DP (83)

Squence Problem Level Language Tags Video Tutorial
0 Max Sum of Rectangle No Larger Than K.java Hard Java [Array, BST, Binary Search, DP, Queue, TreeSet]
1 Combination Sum IV.java Medium Java [Array, Backpack DP, DP]
2 Triangles.java Medium Java [Array, Coordinate DP, DFS, DP, Memoization]
3 Unique Paths II.java Medium Java [Array, Coordinate DP, DP]
4 Unique Path.java Medium Java [Array, Coordinate DP, DP]
5 Longest Continuous Increasing Subsequence.java Easy Java [Array, Coordinate DP, DP]
6 Minimum Path Sum.java Medium Java [Array, Coordinate DP, DP]
7 Longest Increasing Continuous subsequence.java Easy Java [Array, Coordinate DP, DP]
8 Jump Game II.java Hard Java [Array, Coordinate DP, DP, Greedy]
9 Longest Increasing Continuous subsequence II.java Medium Java [Array, Coordinate DP, DP, Memoization]
10 Maximum Subarray.java Easy Java [Array, DFS, DP, Divide and Conquer, PreSum, Sequence DP, Subarray]
11 Coins in a Line III.java Hard Java [Array, DP, Game Theory, Interval DP, Memoization]
12 Coins in a Line II.java Medium Java [Array, DP, Game Theory, Memoization, MiniMax]
13 Jump Game.java Medium Java [Array, DP, Greedy]
14 Maximum Subarray II.java Medium Java [Array, DP, Greedy, PreSum, Sequence DP, Subarray]
15 Best Time to Buy and Sell Stock II.java Easy Java [Array, DP, Greedy, Sequence DP, Status DP]
16 Best Time to Buy and Sell Stock with Transaction Fee.java Medium Java [Array, DP, Greedy, Sequence DP, Status DP]
17 Minimum Subarray.java Easy Java [Array, DP, Greedy, Sequence DP, Subarray]
18 Maximal Rectangle.java Hard Java [Array, DP, Hash Table, Stack]
19 Best Time to Buy and Sell Stock III.java Hard Java [Array, DP, Sequence DP]
20 Best Time to Buy and Sell Stock.java Easy Java [Array, DP, Sequence DP]
21 Maximum Product Subarray.java Medium Java [Array, DP, Subarray]
22 Remove Invalid Parentheses.java Review Java [BFS, DFS, DP]
23 Perfect Squares.java Medium Java [BFS, DP, Math, Partition DP]
24 Unique Binary Search Tree II.java Medium Java [BST, DP, Divide and Conquer, Tree]
25 Unique Binary Search Tree.java Medium Java [BST, DP, Tree]
26 Backpack VI.java Medium Java [Backpack DP, DP]
27 Coin Change 2.java Medium Java [Backpack DP, DP]
28 Backpack.java Medium Java [Backpack DP, DP]
29 Backpack II.java Medium Java [Backpack DP, DP]
30 Backpack V.java Medium Java [Backpack DP, DP]
31 Backpack III.java Hard Java [Backpack DP, DP]
32 Coin Change.java Medium Java [Backpack DP, DP, Memoization]
33 Flip Game II.java Medium Java [Backtracking, DFS, DP]
34 Word Break II.java Hard Java [Backtracking, DFS, DP, Hash Table, Memoization]
35 Wildcard Matching.java Hard Java [Backtracking, DP, Greedy, String]
36 Regular Expression Matching.java Review Java [Backtracking, DP, String]
37 Russian Doll Envelopes.java Hard Java [Binary Search, Coordinate DP, DP]
38 Longest Increasing Subsequence.java Medium Java [Binary Search, Coordinate DP, DP, Memoization]
39 Copy Books.java Hard Java [Binary Search, DP, Partition DP]
40 Counting Bits.java Medium Java [Bit Manipulation, Bitwise DP, DP]
41 Nim Game.java Easy Java [Brainteaser, DP, Game Theory]
42 Longest Increasing Path in a Matrix.java Hard Java [Coordinate DP, DFS, DP, Memoization, Topological Sort]
43 Bomb Enemy.java Medium Java [Coordinate DP, DP]
44 Maximal Square.java Medium Java [Coordinate DP, DP]
45 Number of Longest Increasing Subsequence.java Medium Java [Coordinate DP, DP]
46 Continuous Subarray Sum.java Medium Java [Coordinate DP, DP, Math, Subarray]
47 Minimum Swaps To Make Sequences Increasing.java Medium Java [Coordinate DP, DP, Status DP]
48 Target Sum.java Medium Java [DFS, DP]
49 Longest Palindromic Subsequence.java Medium Java [DFS, DP, Interval DP, Memoization]
50 House Robber III.java Medium Java [DFS, DP, Status DP, Tree]
51 Binary Tree Maximum Path Sum.java Hard Java [DFS, DP, Tree, Tree DP]
52 Stone Game.java Medium Java [DP]
53 k Sum.java Hard Java [DP]
54 Best Time to Buy and Sell Stock with Cooldown.java Medium Java [DP]
55 Ones and Zeroes.java Hard Java [DP]
56 Burst Balloons.java Hard Java [DP, Divide and Conquer, Interval DP, Memoization]
57 Longest Common Subsequence.java Medium Java [DP, Double Sequence DP, Sequence DP]
58 Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, String]
59 Longest Common Substring.java Medium Java [DP, Double Sequence DP, Sequence DP, String]
60 K Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, Trie]
61 Ugly Number II.java Medium Java [DP, Enumeration, Heap, Math, PriorityQueue]
62 Decode Ways II.java Hard Java [DP, Enumeration, Partition DP]
63 Coins in a Line.java Medium Java [DP, Game Theory, Greedy]
64 Frog Jump.java Hard Java [DP, Hash Table]
65 Word Break.java Medium Java [DP, Hash Table, Sequence DP]
66 Scramble String.java Hard Java [DP, Interval DP, String]
67 Number Of Corner Rectangles.java Medium Java [DP, Math]
68 Fibonacci.java Easy Java [DP, Math, Memoization]
69 Climbing Stairs.java Easy Java [DP, Memoization, Sequence DP]
70 Palindrome Partitioning II.java Hard Java [DP, Partition DP]
71 Decode Ways.java Medium Java [DP, Partition DP, String]
72 Range Sum Query - Immutable.java Easy Java [DP, PreSum]
73 House Robber.java Easy Java [DP, Sequence DP]
74 Best Time to Buy and Sell Stock IV.java Hard Java [DP, Sequence DP]
75 Paint Fence.java Easy Java [DP, Sequence DP]
76 Paint House.java Easy Java [DP, Sequence DP, Status DP]
77 House Robber II.java Medium Java [DP, Sequence DP, Status DP]
78 Paint House II.java Hard Java [DP, Sequence DP, Status DP]
79 Interleaving String.java Hard Java [DP, String]
80 Distinct Subsequences.java Hard Java [DP, String]
81 Longest Palindromic Substring.java Medium Java [DP, String]
82 Palindromic Substrings.java Medium Java [DP, String]

Hash Table (65)

Squence Problem Level Language Tags Video Tutorial
0 Word Ladder II.java Hard Java [Array, BFS, Backtracking, DFS, Hash Table, String]
1 Construct Binary Tree from Preorder and Inorder Traversal.java Medium Java [Array, DFS, Divide and Conquer, Hash Table, Tree]
2 Maximal Rectangle.java Hard Java [Array, DP, Hash Table, Stack]
3 Insert Delete GetRandom O(1).java Medium Java [Array, Design, Hash Table]
4 Max Points on a Line.java Hard Java [Array, Geometry, Hash Table, Math]
5 Contains Duplicate.java Easy Java [Array, Hash Table]
6 Contains Duplicate II.java Easy Java [Array, Hash Table]
7 Two Sum.java Easy Java [Array, Hash Table]
8 Anagrams.java Medium Java [Array, Hash Table]
9 Submatrix Sum.java Medium Java [Array, Hash Table, PreSum]
10 Subarray Sum.java Easy Java [Array, Hash Table, PreSum, Subarray]
11 Subarray Sum Equals K.java Medium Java [Array, Hash Table, PreSum, Subarray]
12 Longest Consecutive Sequence.java Hard Java [Array, Hash Table, Union Find]
13 Binary Tree Vertical Order Traversal.java Medium Java [BFS, DFS, Hash Table, Tree]
14 Word Break II.java Hard Java [Backtracking, DFS, DP, Hash Table, Memoization]
15 Intersection of Two Arrays II.java Easy Java [Binary Search, Hash Table, Sort, Two Pointers]
16 Intersection of Two Arrays.java Easy Java [Binary Search, Hash Table, Sort, Two Pointers]
17 H-Index.java Medium Java [Bucket Sort, Hash Table, Sort]
18 Accounts Merge.java Medium Java [DFS, Hash Table, Hash Table, Union Find]
19 Accounts Merge.java Medium Java [DFS, Hash Table, Hash Table, Union Find]
20 Path Sum IV.java Medium Java [DFS, Hash Table, Tree]
21 Frog Jump.java Hard Java [DP, Hash Table]
22 Word Break.java Medium Java [DP, Hash Table, Sequence DP]
23 Perfect Rectangle.java Hard Java [Design, Geometry, Hash Table]
24 LFU Cache.java Hard Java [Design, Hash Table]
25 Unique Word Abbreviation.java Medium Java [Design, Hash Table]
26 ColorGrid.java Medium Java [Design, Hash Table]
27 LRU Cache.java Hard Java [Design, Hash Table, Linked List]
28 Design Search Autocomplete System.java Hard Java [Design, Hash Table, MinHeap, PriorityQueue, Trie]
29 Strobogrammatic Number.java Easy Java [Enumeration, Hash Table, Math]
30 Rearrange String k Distance Apart.java Hard Java [Greedy, Hash Table, Heap]
31 Remove Duplicate Letters.java Hard Java [Greedy, Hash Table, Stack]
32 Jewels and Stones.java Easy Java [Hash Table]
33 Find Anagram Mappings.java Easy Java [Hash Table]
34 Island Perimeter.java Easy Java [Hash Table]
35 Palindrome Permutation.java Easy Java [Hash Table]
36 Hash Function.java Easy Java [Hash Table]
37 HashWithCustomizedClass(LinkedList).java Medium Java [Hash Table]
38 Rehashing.java Medium Java [Hash Table]
39 Sparse Matrix Multiplication.java Medium Java [Hash Table]
40 Brick Wall.java Medium Java [Hash Table]
41 Contiguous Array.java Medium Java [Hash Table]
42 4Sum.java Medium Java [Hash Table]
43 Top K Frequent Elements.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue]
44 Top K Frequent Words.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue, Trie]
45 Majority Number III.java Medium Java [Hash Table, Linked List]
46 Copy List with Random Pointer.java Medium Java [Hash Table, Linked List]
47 Fraction to Recurring Decimal.java Medium Java [Hash Table, Math]
48 Encode and Decode TinyURL.java Medium Java [Hash Table, Math]
49 Count Primes.java Easy Java [Hash Table, Math]
50 Line Reflection.java Medium Java [Hash Table, Math]
51 Maximum Size Subarray Sum Equals k.java Medium Java [Hash Table, PreSum, Subarray]
52 Find All Anagrams in a String.java Easy Java [Hash Table, Sliding Window]
53 Longest Substring with At Most Two Distinct Characters.java Hard Java [Hash Table, Sliding Window, String, Two Pointers]
54 Valid Anagram.java Easy Java [Hash Table, Sort]
55 Binary Tree Inorder Traversal.java Easy Java [Hash Table, Stack, Tree]
56 Longest Substring with At Most K Distinct Characters.java Medium Java [Hash Table, String]
57 Group Anagrams.java Medium Java [Hash Table, String]
58 Longest Words.java Easy Java [Hash Table, String]
59 First Unique Character in a String.java Easy Java [Hash Table, String]
60 Palindrome Pairs.java Hard Java [Hash Table, String, Trie]
61 Longest Substring Without Repeating Characters.java Medium Java [Hash Table, String, Two Pointers]
62 Minimum Window Substring.java Hard Java [Hash Table, String, Two Pointers]
63 Lowest Common Ancestor II.java Easy Java [Hash Table, Tree]
64 Longest Word in Dictionary.java Easy Java [Hash Table, Trie]

String (59)

Squence Problem Level Language Tags Video Tutorial
0 Word Ladder II.java Hard Java [Array, BFS, Backtracking, DFS, Hash Table, String]
1 Unique Characters.java Easy Java [Array, String]
2 Expression Add Operators.java Hard Java [Backtracking, DFS, Divide and Conquer, String]
3 Generate Parentheses.java Medium Java [Backtracking, DFS, Sequence DFS, String]
4 Restore IP Addresses.java Medium Java [Backtracking, DFS, String]
5 Wildcard Matching.java Hard Java [Backtracking, DP, Greedy, String]
6 Regular Expression Matching.java Review Java [Backtracking, DP, String]
7 Letter Combinations of a Phone Number.java Medium Java [Backtracking, String]
8 Next Closest Time.java Medium Java [Basic Implementation, Enumeration, String]
9 Count and Say.java Easy Java [Basic Implementation, String]
10 Binary Representation.java Hard Java [Bit Manipulation, String]
11 Longest Valid Parentheses.java Hard Java [Coordinate DP, Stack, String]
12 Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, String]
13 Longest Common Substring.java Medium Java [DP, Double Sequence DP, Sequence DP, String]
14 Scramble String.java Hard Java [DP, Interval DP, String]
15 Decode Ways.java Medium Java [DP, Partition DP, String]
16 Interleaving String.java Hard Java [DP, String]
17 Distinct Subsequences.java Hard Java [DP, String]
18 Longest Palindromic Substring.java Medium Java [DP, String]
19 Palindromic Substrings.java Medium Java [DP, String]
20 Valid Number.java Hard Java [Enumeration, Math, String]
21 Integer to English Words.java Hard Java [Enumeration, Math, String]
22 Read N Characters Given Read4.java Easy Java [Enumeration, String]
23 Text Justification.java Hard Java [Enumeration, String]
24 Read N Characters Given Read4 II - Call multiple times.java Hard Java [Enumeration, String]
25 Longest Substring with At Most Two Distinct Characters.java Hard Java [Hash Table, Sliding Window, String, Two Pointers]
26 Longest Substring with At Most K Distinct Characters.java Medium Java [Hash Table, String]
27 Group Anagrams.java Medium Java [Hash Table, String]
28 Longest Words.java Easy Java [Hash Table, String]
29 First Unique Character in a String.java Easy Java [Hash Table, String]
30 Palindrome Pairs.java Hard Java [Hash Table, String, Trie]
31 Longest Substring Without Repeating Characters.java Medium Java [Hash Table, String, Two Pointers]
32 Minimum Window Substring.java Hard Java [Hash Table, String, Two Pointers]
33 Shortest Palindrome.java Hard Java [KMP, String]
34 Multiply Strings.java Medium Java [Math, String]
35 String to Integer (atoi).java Medium Java [Math, String]
36 Roman to Integer.java Easy Java [Math, String]
37 Add Binary.java Easy Java [Math, String, Two Pointers]
38 Sort Letters by Case.java Medium Java [Partition, Sort, String, Two Pointers]
39 Simplify Path.java Medium Java [Stack, String]
40 Valid Parentheses.java Easy Java [Stack, String]
41 Space Replacement.java Medium Java [String]
42 Judge Route Circle.java Easy Java [String]
43 Change to Anagram.java Easy Java [String]
44 Compare Version Numbers.java Medium Java [String]
45 Compare Strings.java Easy Java [String]
46 Flip Game.java Easy Java [String]
47 Length of Last Word.java Easy Java [String]
48 Rotate String.java Easy Java [String]
49 Encode and Decode Strings.java Medium Java [String]
50 Longest Common Prefix.java Easy Java [String]
51 Reverse Words in a String.java Medium Java [String]
52 Reverse Words in a String II.java Medium Java [String]
53 Reverse Words in a String III.java Easy Java [String]
54 Valid Palindrome II.java Easy Java [String]
55 One Edit Distance.java Medium Java [String]
56 Reverse Vowels of a String.java Easy Java [String, Two Pointers]
57 Implement strStr().java Easy Java [String, Two Pointers]
58 Valid Palindrome.java Easy Java [String, Two Pointers]

Tree (53)

Squence Problem Level Language Tags Video Tutorial
0 Construct Binary Tree from Preorder and Inorder Traversal.java Medium Java [Array, DFS, Divide and Conquer, Hash Table, Tree]
1 Construct Binary Tree from Inorder and Postorder Traversal.java Medium Java [Array, DFS, Divide and Conquer, Tree]
2 Serialize and Deserialize Binary Tree.java Hard Java [BFS, DFS, Deque, Design, Divide and Conquer, Tree]
3 Binary Tree Vertical Order Traversal.java Medium Java [BFS, DFS, Hash Table, Tree]
4 Binary Tree Preorder Traversal.java Easy Java [BFS, DFS, Stack, Tree]
5 Invert Binary Tree.java Easy Java [BFS, DFS, Tree]
6 Minimum Depth of Binary Tree.java Easy Java [BFS, DFS, Tree]
7 Symmetric Tree.java Easy Java [BFS, DFS, Tree]
8 Binary Tree Level Order Traversal.java Medium Java [BFS, DFS, Tree]
9 Binary Tree Right Side View.java Medium Java [BFS, DFS, Tree]
10 Binary Tree Zigzag Level Order Traversal.java Medium Java [BFS, Stack, Tree]
11 Complete Binary Tree.java Easy Java [BFS, Tree]
12 Binary Tree Level Order Traversal II.java Medium Java [BFS, Tree]
13 Closest Binary Search Tree Value.java Easy Java [BST, Binary Search, Tree]
14 Convert Binary Search Tree to Sorted Doubly Linked List.java Medium Java [BST, DFS, Divide and Conquer, Linked List, Tree]
15 Validate Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Tree]
16 Kth Smallest Element in a BST.java Medium Java [BST, DFS, Stack, Tree]
17 Lowest Common Ancestor of a Binary Search Tree.java Medium Java [BST, DFS, Tree]
18 Recover Binary Search Tree.java Hard Java [BST, DFS, Tree]
19 Unique Binary Search Tree II.java Medium Java [BST, DP, Divide and Conquer, Tree]
20 Unique Binary Search Tree.java Medium Java [BST, DP, Tree]
21 Binary Search Tree Iterator.java Medium Java [BST, Design, Stack, Tree]
22 Trim a Binary Search Tree.java Easy Java [BST, Tree]
23 Inorder Successor in BST.java Medium Java [BST, Tree]
24 Path Sum II.java Easy Java [Backtracking, DFS, Tree]
25 Count Complete Tree Nodes.java Medium Java [Binary Search, Tree]
26 House Robber III.java Medium Java [DFS, DP, Status DP, Tree]
27 Binary Tree Maximum Path Sum.java Hard Java [DFS, DP, Tree, Tree DP]
28 Binary Tree Longest Consecutive Sequence II.java Medium Java [DFS, Divide and Conquer, Double Recursive, Tree]
29 Convert Sorted Array to Binary Search Tree.java Easy Java [DFS, Divide and Conquer, Tree]
30 Populating Next Right Pointers in Each Node.java Medium Java [DFS, Divide and Conquer, Tree]
31 Binary Tree Longest Consecutive Sequence.java Medium Java [DFS, Divide and Conquer, Tree]
32 Smallest Subtree with all the Deepest Nodes.java Medium Java [DFS, Divide and Conquer, Tree]
33 Subtree of Another Tree.java Easy Java [DFS, Divide and Conquer, Tree]
34 Path Sum III.java Easy Java [DFS, Double Recursive, Tree]
35 Path Sum IV.java Medium Java [DFS, Hash Table, Tree]
36 Same Tree.java Easy Java [DFS, Tree]
37 Balanced Binary Tree.java Medium Java [DFS, Tree]
38 Maximum Depth of Binary Tree.java Easy Java [DFS, Tree]
39 Tweaked Identical Binary Tree.java Easy Java [DFS, Tree]
40 Merge Two Binary Trees.java Easy Java [DFS, Tree]
41 Subtree.java Easy Java [DFS, Tree]
42 Lowest Common Ancestor of a Binary Tree.java Medium Java [DFS, Tree]
43 Path Sum.java Easy Java [DFS, Tree]
44 Binary Tree Maximum Path Sum II.java Medium Java [DFS, Tree]
45 Populating Next Right Pointers in Each Node II.java Medium Java [DFS, Tree]
46 Binary Tree Inorder Traversal.java Easy Java [Hash Table, Stack, Tree]
47 Lowest Common Ancestor II.java Easy Java [Hash Table, Tree]
48 Convert Binary Search Tree to Sorted Doubly Linked List (extra space).java Medium Java [Linked List, Stack, Tree]
49 Maximum Binary Tree.java Medium Java [Stack, Tree]
50 Binary Tree Postorder Traversal.java Medium Java [Stack, Tree, Two Stacks]
51 Two Sum IV - Input is a BST.java Easy Java [Tree]
52 Diameter of Binary Tree.java Easy Java [Tree]

Binary Search (40)

Squence Problem Level Language Tags Video Tutorial
0 Max Sum of Rectangle No Larger Than K.java Hard Java [Array, BST, Binary Search, DP, Queue, TreeSet]
1 Search in Rotated Sorted Array II.java Medium Java [Array, Binary Search]
2 Find Peak Element.java Medium Java [Array, Binary Search]
3 Find Minimum in Rotated Sorted Array.java Medium Java [Array, Binary Search]
4 Find Minimum in Rotated Sorted Array II.java Hard Java [Array, Binary Search]
5 Search a 2D Matrix.java Medium Java [Array, Binary Search]
6 Search for a Range.java Medium Java [Array, Binary Search]
7 Search in Rotated Sorted Array.java Medium Java [Array, Binary Search]
8 Median of Two Sorted Arrays.java Hard Java [Array, Binary Search, DFS, Divide and Conquer]
9 Maximum Average Subarray II.java Review Java [Array, Binary Search, PreSum]
10 Minimum Size Subarray Sum.java Medium Java [Array, Binary Search, Subarray, Two Pointers]
11 Subarray Sum II.java Hard Java [Array, Binary Search, Two Pointers]
12 Two Sum II - Input array is sorted.java Medium Java [Array, Binary Search, Two Pointers]
13 2 Sum II.java Medium Java [Array, Binary Search, Two Pointers]
14 Find the Duplicate Number.java Medium Java [Array, Binary Search, Two Pointers]
15 Count of Smaller Numbers After Self.java Hard Java [BST, Binary Indexed Tree, Binary Search, Divide and Conquer, Segment Tree]
16 Closest Binary Search Tree Value.java Easy Java [BST, Binary Search, Tree]
17 Guess Number Higher or Lower.java Easy Java [Binary Search]
18 First Bad Version.java Easy Java [Binary Search]
19 Wood Cut.java Medium Java [Binary Search]
20 Classical Binary Search.java Easy Java [Binary Search]
21 Closest Number in Sorted Array.java Easy Java [Binary Search]
22 Last Position of Target.java Easy Java [Binary Search]
23 H-Index II.java Medium Java [Binary Search]
24 Russian Doll Envelopes.java Hard Java [Binary Search, Coordinate DP, DP]
25 Longest Increasing Subsequence.java Medium Java [Binary Search, Coordinate DP, DP, Memoization]
26 Find Peak Element II.java Hard Java [Binary Search, DFS, Divide and Conquer]
27 Copy Books.java Hard Java [Binary Search, DP, Partition DP]
28 Search a 2D Matrix II.java Medium Java [Binary Search, Divide and Conquer]
29 Interval Minimum Number.java Medium Java [Binary Search, Divide and Conquer, Lint, Segment Tree]
30 Intersection of Two Arrays II.java Easy Java [Binary Search, Hash Table, Sort, Two Pointers]
31 Intersection of Two Arrays.java Easy Java [Binary Search, Hash Table, Sort, Two Pointers]
32 Kth Smallest Element in a Sorted Matrix.java Medium Java [Binary Search, Heap]
33 Interval Sum.java Medium Java [Binary Search, Lint, Segment Tree]
34 Interval Sum II.java Hard Java [Binary Search, Lint, Segment Tree]
35 Count of Smaller Number.java Medium Java [Binary Search, Lint, Segment Tree]
36 Valid Perfect Square.java Review Java [Binary Search, Math]
37 Pow(x, n).java Medium Java [Binary Search, Math]
38 Sqrt(x).java Easy Java [Binary Search, Math]
39 Count Complete Tree Nodes.java Medium Java [Binary Search, Tree]

Two Pointers (38)

Squence Problem Level Language Tags Video Tutorial
0 Minimum Size Subarray Sum.java Medium Java [Array, Binary Search, Subarray, Two Pointers]
1 Subarray Sum II.java Hard Java [Array, Binary Search, Two Pointers]
2 Two Sum II - Input array is sorted.java Medium Java [Array, Binary Search, Two Pointers]
3 2 Sum II.java Medium Java [Array, Binary Search, Two Pointers]
4 Find the Duplicate Number.java Medium Java [Array, Binary Search, Two Pointers]
5 Sort Colors.java Medium Java [Array, Partition, Quick Sort, Sort, Two Pointers]
6 Partition Array.java Medium Java [Array, Quick Sort, Sort, Two Pointers]
7 The Smallest Difference.java Medium Java [Array, Sort, Two Pointers]
8 Trapping Rain Water.java Hard Java [Array, Stack, Two Pointers]
9 Partition Array by Odd and Even.java Easy Java [Array, Two Pointers]
10 3 Sum Closest.java Medium Java [Array, Two Pointers]
11 3Sum.java Medium Java [Array, Two Pointers]
12 3Sum Smaller.java Medium Java [Array, Two Pointers]
13 Remove Duplicates from Sorted Array.java Easy Java [Array, Two Pointers]
14 Remove Duplicates from Sorted Array II.java Medium Java [Array, Two Pointers]
15 Container With Most Water.java Medium Java [Array, Two Pointers]
16 Merge Sorted Array.java Easy Java [Array, Two Pointers]
17 Move Zeroes.java Easy Java [Array, Two Pointers]
18 Intersection of Two Arrays II.java Easy Java [Binary Search, Hash Table, Sort, Two Pointers]
19 Intersection of Two Arrays.java Easy Java [Binary Search, Hash Table, Sort, Two Pointers]
20 Longest Substring with At Most Two Distinct Characters.java Hard Java [Hash Table, Sliding Window, String, Two Pointers]
21 Longest Substring Without Repeating Characters.java Medium Java [Hash Table, String, Two Pointers]
22 Minimum Window Substring.java Hard Java [Hash Table, String, Two Pointers]
23 Linked List Cycle II.java Medium Java [Linked List, Math, Two Pointers]
24 Linked List Cycle.java Easy Java [Linked List, Two Pointers]
25 Remove Nth Node From End of List.java Medium Java [Linked List, Two Pointers]
26 Palindrome Linked List.java Easy Java [Linked List, Two Pointers]
27 Rotate List.java Medium Java [Linked List, Two Pointers]
28 Partition List.java Medium Java [Linked List, Two Pointers]
29 Add Binary.java Easy Java [Math, String, Two Pointers]
30 Sort Colors II.java Medium Java [Partition, Quick Sort, Sort, Two Pointers]
31 Sort Letters by Case.java Medium Java [Partition, Sort, String, Two Pointers]
32 Backspace String Compare.java Easy Java [Stack, Two Pointers]
33 Reverse Vowels of a String.java Easy Java [String, Two Pointers]
34 Implement strStr().java Easy Java [String, Two Pointers]
35 Valid Palindrome.java Easy Java [String, Two Pointers]
36 Permutation in String.java Medium Java [Two Pointers]
37 Interleaving Positive and Negative Numbers.java Medium Java [Two Pointers]

Math (37)

Squence Problem Level Language Tags Video Tutorial
0 Missing Number.java Easy Java [Array, Bit Manipulation, Math]
1 Max Points on a Line.java Hard Java [Array, Geometry, Hash Table, Math]
2 Plus One.java Easy Java [Array, Math]
3 Friends Of Appropriate Ages.java Medium Java [Array, Math]
4 Perfect Squares.java Medium Java [BFS, DP, Math, Partition DP]
5 Permutation Sequence.java Medium Java [Backtracking, Math]
6 Valid Perfect Square.java Review Java [Binary Search, Math]
7 Pow(x, n).java Medium Java [Binary Search, Math]
8 Sqrt(x).java Easy Java [Binary Search, Math]
9 Basic Calculator.java Hard Java [Binary Tree, Expression Tree, Math, Minimum Binary Tree, Stack]
10 Power of Two.java Easy Java [Bit Manipulation, Math]
11 Continuous Subarray Sum.java Medium Java [Coordinate DP, DP, Math, Subarray]
12 Strobogrammatic Number II.java Medium Java [DFS, Enumeration, Math, Sequence DFS]
13 Ugly Number II.java Medium Java [DP, Enumeration, Heap, Math, PriorityQueue]
14 Number Of Corner Rectangles.java Medium Java [DP, Math]
15 Fibonacci.java Easy Java [DP, Math, Memoization]
16 Strobogrammatic Number.java Easy Java [Enumeration, Hash Table, Math]
17 Valid Number.java Hard Java [Enumeration, Math, String]
18 Integer to English Words.java Hard Java [Enumeration, Math, String]
19 Fraction to Recurring Decimal.java Medium Java [Hash Table, Math]
20 Encode and Decode TinyURL.java Medium Java [Hash Table, Math]
21 Count Primes.java Easy Java [Hash Table, Math]
22 Line Reflection.java Medium Java [Hash Table, Math]
23 Add Two Numbers.java Medium Java [Linked List, Math]
24 Linked List Cycle II.java Medium Java [Linked List, Math, Two Pointers]
25 Trailing Zeros.java Easy Java [Math]
26 Power of Three.java Easy Java [Math]
27 Add Digits.java Easy Java [Math]
28 Reverse Integer.java Easy Java [Math]
29 Excel Sheet Column Number.java Easy Java [Math]
30 Excel Sheet Column Title.java Easy Java [Math]
31 Ugly Number.java Medium Java [Math]
32 Number of Digit One.java Hard Java [Math]
33 Multiply Strings.java Medium Java [Math, String]
34 String to Integer (atoi).java Medium Java [Math, String]
35 Roman to Integer.java Easy Java [Math, String]
36 Add Binary.java Easy Java [Math, String, Two Pointers]

Divide and Conquer (35)

Squence Problem Level Language Tags Video Tutorial
0 Median of Two Sorted Arrays.java Hard Java [Array, Binary Search, DFS, Divide and Conquer]
1 Majority Element.java Easy Java [Array, Bit Manipulation, Divide and Conquer]
2 Maximum Subarray.java Easy Java [Array, DFS, DP, Divide and Conquer, PreSum, Sequence DP, Subarray]
3 Construct Binary Tree from Preorder and Inorder Traversal.java Medium Java [Array, DFS, Divide and Conquer, Hash Table, Tree]
4 Construct Binary Tree from Inorder and Postorder Traversal.java Medium Java [Array, DFS, Divide and Conquer, Tree]
5 Serialize and Deserialize Binary Tree.java Hard Java [BFS, DFS, Deque, Design, Divide and Conquer, Tree]
6 Count of Smaller Numbers After Self.java Hard Java [BST, Binary Indexed Tree, Binary Search, Divide and Conquer, Segment Tree]
7 Convert Sorted List to Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Linked List]
8 Convert Binary Search Tree to Sorted Doubly Linked List.java Medium Java [BST, DFS, Divide and Conquer, Linked List, Tree]
9 Validate Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Tree]
10 Unique Binary Search Tree II.java Medium Java [BST, DP, Divide and Conquer, Tree]
11 Count of Range Sum.java Hard Java [BST, Divide and Conquer, Merge Sort, PreSum]
12 Expression Add Operators.java Hard Java [Backtracking, DFS, Divide and Conquer, String]
13 Reverse Pairs.java Medium Java [Binary Indexed Tree, Binary Search Tree, Divide and Conquer, Merge Sort, Segment Tree]
14 The Skyline Problem.java Review Java [Binary Indexed Tree, Divide and Conquer, Heap, PriorityQueue, Segment Tree, Sweep Line]
15 Find Peak Element II.java Hard Java [Binary Search, DFS, Divide and Conquer]
16 Search a 2D Matrix II.java Medium Java [Binary Search, Divide and Conquer]
17 Interval Minimum Number.java Medium Java [Binary Search, Divide and Conquer, Lint, Segment Tree]
18 Segment Tree Query.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
19 Segment Tree Modify.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
20 Segment Tree Query II.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
21 Segment Tree Build.java Medium Java [Binary Tree, Divide and Conquer, Lint, Segment Tree]
22 Segment Tree Build II.java Medium Java [Binary Tree, Divide and Conquer, Lint, Segment Tree]
23 Fast Power.java Medium Java [DFS, Divide and Conquer]
24 Binary Tree Longest Consecutive Sequence II.java Medium Java [DFS, Divide and Conquer, Double Recursive, Tree]
25 Decode String.java Medium Java [DFS, Divide and Conquer, Stack]
26 Convert Sorted Array to Binary Search Tree.java Easy Java [DFS, Divide and Conquer, Tree]
27 Populating Next Right Pointers in Each Node.java Medium Java [DFS, Divide and Conquer, Tree]
28 Binary Tree Longest Consecutive Sequence.java Medium Java [DFS, Divide and Conquer, Tree]
29 Smallest Subtree with all the Deepest Nodes.java Medium Java [DFS, Divide and Conquer, Tree]
30 Subtree of Another Tree.java Easy Java [DFS, Divide and Conquer, Tree]
31 Burst Balloons.java Hard Java [DP, Divide and Conquer, Interval DP, Memoization]
32 Merge k Sorted Lists.java Medium Java [Divide and Conquer, Heap, Linked List, PriorityQueue]
33 Kth Largest Element in an Array.java Medium Java [Divide and Conquer, Heap, MinHeap, PriorityQueue, Quick Sort]
34 Sort List.java Medium Java [Divide and Conquer, Linked List, Merge Sort, Sort]

BFS (32)

Squence Problem Level Language Tags Video Tutorial
0 Subsets.java Medium Java [Array, BFS, Backtracking, Bit Manipulation, DFS]
1 Subsets II.java Medium Java [Array, BFS, Backtracking, DFS]
2 Word Ladder II.java Hard Java [Array, BFS, Backtracking, DFS, Hash Table, String]
3 Word Ladder.java Medium Java [BFS]
4 Shortest Distance from All Buildings.java Hard Java [BFS]
5 Course Schedule.java Medium Java [BFS, Backtracking, DFS, Graph, Topological Sort]
6 Alien Dictionary.java Hard Java [BFS, Backtracking, DFS, Graph, Topological Sort]
7 Nested List Weight Sum.java Easy Java [BFS, DFS]
8 Find the Connected Component in the Undirected Graph.java Medium Java [BFS, DFS]
9 Walls and Gates.java Medium Java [BFS, DFS]
10 Remove Invalid Parentheses.java Review Java [BFS, DFS, DP]
11 Serialize and Deserialize Binary Tree.java Hard Java [BFS, DFS, Deque, Design, Divide and Conquer, Tree]
12 Clone Graph.java Medium Java [BFS, DFS, Graph]
13 Course Schedule II.java Medium Java [BFS, DFS, Graph, Topological Sort]
14 Number of Connected Components in an Undirected Graph.java Medium Java [BFS, DFS, Graph, Union Find]
15 Graph Valid Tree.java Medium Java [BFS, DFS, Graph, Union Find]
16 Binary Tree Vertical Order Traversal.java Medium Java [BFS, DFS, Hash Table, Tree]
17 Number of Islands.java Medium Java [BFS, DFS, Matrix DFS, Union Find]
18 Surrounded Regions.java Medium Java [BFS, DFS, Matrix DFS, Union Find]
19 Binary Tree Preorder Traversal.java Easy Java [BFS, DFS, Stack, Tree]
20 Topological Sorting.java Medium Java [BFS, DFS, Topological Sort]
21 Invert Binary Tree.java Easy Java [BFS, DFS, Tree]
22 Minimum Depth of Binary Tree.java Easy Java [BFS, DFS, Tree]
23 Symmetric Tree.java Easy Java [BFS, DFS, Tree]
24 Binary Tree Level Order Traversal.java Medium Java [BFS, DFS, Tree]
25 Binary Tree Right Side View.java Medium Java [BFS, DFS, Tree]
26 Perfect Squares.java Medium Java [BFS, DP, Math, Partition DP]
27 Minimum Height Trees.java Medium Java [BFS, Graph]
28 Trapping Rain Water II.java Hard Java [BFS, Heap, MinHeap, PriorityQueue]
29 Binary Tree Zigzag Level Order Traversal.java Medium Java [BFS, Stack, Tree]
30 Complete Binary Tree.java Easy Java [BFS, Tree]
31 Binary Tree Level Order Traversal II.java Medium Java [BFS, Tree]

Backtracking (31)

Squence Problem Level Language Tags Video Tutorial
0 Subsets.java Medium Java [Array, BFS, Backtracking, Bit Manipulation, DFS]
1 Subsets II.java Medium Java [Array, BFS, Backtracking, DFS]
2 Word Ladder II.java Hard Java [Array, BFS, Backtracking, DFS, Hash Table, String]
3 Combination Sum.java Medium Java [Array, Backtracking, Combination, DFS]
4 Combination Sum II.java Medium Java [Array, Backtracking, Combination, DFS]
5 Combination Sum III.java Medium Java [Array, Backtracking, Combination, DFS]
6 Word Search.java Medium Java [Array, Backtracking, DFS]
7 Course Schedule.java Medium Java [BFS, Backtracking, DFS, Graph, Topological Sort]
8 Alien Dictionary.java Hard Java [BFS, Backtracking, DFS, Graph, Topological Sort]
9 Gray Code.java Medium Java [Backtracking]
10 Permutations II.java Medium Java [Backtracking]
11 N-Queens.java Hard Java [Backtracking]
12 N-Queens II.java Hard Java [Backtracking]
13 Binary Tree Paths.java Easy Java [Backtracking, Binary Tree, DFS]
14 Combinations.java Medium Java [Backtracking, Combination, DFS]
15 Palindrome Partitioning.java Medium Java [Backtracking, DFS]
16 Flip Game II.java Medium Java [Backtracking, DFS, DP]
17 Word Break II.java Hard Java [Backtracking, DFS, DP, Hash Table, Memoization]
18 Expression Add Operators.java Hard Java [Backtracking, DFS, Divide and Conquer, String]
19 Permutations.java Medium Java [Backtracking, DFS, Permutation]
20 Generate Parentheses.java Medium Java [Backtracking, DFS, Sequence DFS, String]
21 Restore IP Addresses.java Medium Java [Backtracking, DFS, String]
22 Path Sum II.java Easy Java [Backtracking, DFS, Tree]
23 Word Search II.java Hard Java [Backtracking, DFS, Trie]
24 Wildcard Matching.java Hard Java [Backtracking, DP, Greedy, String]
25 Regular Expression Matching.java Review Java [Backtracking, DP, String]
26 Add and Search Word - Data structure design.java Medium Java [Backtracking, Design, Trie]
27 Permutation Sequence.java Medium Java [Backtracking, Math]
28 Palindrome Permutation II.java Medium Java [Backtracking, Permutation]
29 Letter Combinations of a Phone Number.java Medium Java [Backtracking, String]
30 Word Squares.java Hard Java [Backtracking, Trie]

Linked List (31)

Squence Problem Level Language Tags Video Tutorial
0 Convert Sorted List to Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Linked List]
1 Convert Binary Search Tree to Sorted Doubly Linked List.java Medium Java [BST, DFS, Divide and Conquer, Linked List, Tree]
2 LRU Cache.java Hard Java [Design, Hash Table, Linked List]
3 Merge k Sorted Lists.java Medium Java [Divide and Conquer, Heap, Linked List, PriorityQueue]
4 Sort List.java Medium Java [Divide and Conquer, Linked List, Merge Sort, Sort]
5 Majority Number III.java Medium Java [Hash Table, Linked List]
6 Copy List with Random Pointer.java Medium Java [Hash Table, Linked List]
7 Remove Duplicates from Unsorted List.java Medium Java [Linked List]
8 Two Lists Sum.java Medium Java [Linked List]
9 Add Two Numbers II.java Medium Java [Linked List]
10 Swap Nodes in Pairs.java Medium Java [Linked List]
11 Delete Node in a Linked List.java Easy Java [Linked List]
12 Middle of Linked List.java Easy Java [Linked List]
13 Remove Linked List Elements.java Easy Java [Linked List]
14 Reverse Linked List.java Easy Java [Linked List]
15 Reverse Linked List II .java Medium Java [Linked List]
16 Intersection of Two Linked Lists.java Easy Java [Linked List]
17 Merge Two Sorted Lists.java Easy Java [Linked List]
18 Remove Duplicates from Sorted List.java Easy Java [Linked List]
19 Remove Duplicates from Sorted List II.java Medium Java [Linked List]
20 Reorder List.java Medium Java [Linked List]
21 Nth to Last Node in List.java Easy Java [Linked List]
22 Add Two Numbers.java Medium Java [Linked List, Math]
23 Linked List Cycle II.java Medium Java [Linked List, Math, Two Pointers]
24 Insertion Sort List.java Medium Java [Linked List, Sort]
25 Convert Binary Search Tree to Sorted Doubly Linked List (extra space).java Medium Java [Linked List, Stack, Tree]
26 Linked List Cycle.java Easy Java [Linked List, Two Pointers]
27 Remove Nth Node From End of List.java Medium Java [Linked List, Two Pointers]
28 Palindrome Linked List.java Easy Java [Linked List, Two Pointers]
29 Rotate List.java Medium Java [Linked List, Two Pointers]
30 Partition List.java Medium Java [Linked List, Two Pointers]

Stack (29)

Squence Problem Level Language Tags Video Tutorial
0 Maximal Rectangle.java Hard Java [Array, DP, Hash Table, Stack]
1 Largest Rectangle in Histogram.java Hard Java [Array, Monotonous Stack, Stack]
2 Trapping Rain Water.java Hard Java [Array, Stack, Two Pointers]
3 Binary Tree Preorder Traversal.java Easy Java [BFS, DFS, Stack, Tree]
4 Binary Tree Zigzag Level Order Traversal.java Medium Java [BFS, Stack, Tree]
5 Kth Smallest Element in a BST.java Medium Java [BST, DFS, Stack, Tree]
6 Binary Search Tree Iterator.java Medium Java [BST, Design, Stack, Tree]
7 Expression Evaluation.java Hard Java [Binary Tree, DFS, Expression Tree, Minimum Binary Tree, Stack]
8 Convert Expression to Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
9 Convert Expression to Reverse Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
10 Basic Calculator.java Hard Java [Binary Tree, Expression Tree, Math, Minimum Binary Tree, Stack]
11 Expression Tree Build.java Hard Java [Binary Tree, Expression Tree, Minimum Binary Tree, Stack]
12 Longest Valid Parentheses.java Hard Java [Coordinate DP, Stack, String]
13 Decode String.java Medium Java [DFS, Divide and Conquer, Stack]
14 Flatten Nested List Iterator.java Medium Java [Design, Stack]
15 Min Stack.java Easy Java [Design, Stack]
16 Implement Queue using Stacks.java Easy Java [Design, Stack]
17 Implement Stack using Queues.java Easy Java [Design, Stack]
18 Remove Duplicate Letters.java Hard Java [Greedy, Hash Table, Stack]
19 Binary Tree Inorder Traversal.java Easy Java [Hash Table, Stack, Tree]
20 Convert Binary Search Tree to Sorted Doubly Linked List (extra space).java Medium Java [Linked List, Stack, Tree]
21 Evaluate Reverse Polish Notation.java Medium Java [Stack]
22 Implement Stack.java Easy Java [Stack]
23 Exclusive Time of Functions.java Medium Java [Stack]
24 Simplify Path.java Medium Java [Stack, String]
25 Valid Parentheses.java Easy Java [Stack, String]
26 Maximum Binary Tree.java Medium Java [Stack, Tree]
27 Binary Tree Postorder Traversal.java Medium Java [Stack, Tree, Two Stacks]
28 Backspace String Compare.java Easy Java [Stack, Two Pointers]

Sort (22)

Squence Problem Level Language Tags Video Tutorial
0 Number of Airplane in the sky.java Medium Java [Array, Interval, PriorityQueue, Sort, Sweep Line]
1 Sort Colors.java Medium Java [Array, Partition, Quick Sort, Sort, Two Pointers]
2 Insert Interval.java Hard Java [Array, PriorityQueue, Sort]
3 Merge Intervals.java Medium Java [Array, PriorityQueue, Sort, Sweep Line]
4 Partition Array.java Medium Java [Array, Quick Sort, Sort, Two Pointers]
5 Wiggle Sort.java Medium Java [Array, Sort]
6 The Smallest Difference.java Medium Java [Array, Sort, Two Pointers]
7 Intersection of Two Arrays II.java Easy Java [Binary Search, Hash Table, Sort, Two Pointers]
8 Intersection of Two Arrays.java Easy Java [Binary Search, Hash Table, Sort, Two Pointers]
9 H-Index.java Medium Java [Bucket Sort, Hash Table, Sort]
10 Sort List.java Medium Java [Divide and Conquer, Linked List, Merge Sort, Sort]
11 Meeting Rooms II.java Medium Java [Greedy, Heap, PriorityQueue, Sort, Sweep Line]
12 Valid Anagram.java Easy Java [Hash Table, Sort]
13 Insertion Sort List.java Medium Java [Linked List, Sort]
14 MergeSort.java Medium Java [Merge Sort, Sort]
15 Sort Colors II.java Medium Java [Partition, Quick Sort, Sort, Two Pointers]
16 Sort Letters by Case.java Medium Java [Partition, Sort, String, Two Pointers]
17 Subarray Sum Closest.java Medium Java [PreSum, PriorityQueue, Sort, Subarray]
18 Exam Room.java Medium Java [PriorityQueue, Sort]
19 Meeting Rooms.java Easy Java [PriorityQueue, Sort, Sweep Line]
20 QuickSort.java Medium Java [Quick Sort, Sort]
21 Largest Number.java Medium Java [Sort]

BST (22)

Squence Problem Level Language Tags Video Tutorial
0 Max Sum of Rectangle No Larger Than K.java Hard Java [Array, BST, Binary Search, DP, Queue, TreeSet]
1 K Empty Slots.java Hard Java [Array, BST, TreeSet]
2 Insert Node in a Binary Search Tree .java Easy Java [BST]
3 Minimum Absolute Difference in BST.java Easy Java [BST]
4 Remove Node in Binary Search Tree.java Hard Java [BST]
5 Zigzag Iterator.java Medium Java [BST]
6 Contains Duplicate III.java Medium Java [BST]
7 Count of Smaller Numbers After Self.java Hard Java [BST, Binary Indexed Tree, Binary Search, Divide and Conquer, Segment Tree]
8 Closest Binary Search Tree Value.java Easy Java [BST, Binary Search, Tree]
9 Search Range in Binary Search Tree .java Medium Java [BST, Binary Tree]
10 Convert Sorted List to Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Linked List]
11 Convert Binary Search Tree to Sorted Doubly Linked List.java Medium Java [BST, DFS, Divide and Conquer, Linked List, Tree]
12 Validate Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Tree]
13 Kth Smallest Element in a BST.java Medium Java [BST, DFS, Stack, Tree]
14 Lowest Common Ancestor of a Binary Search Tree.java Medium Java [BST, DFS, Tree]
15 Recover Binary Search Tree.java Hard Java [BST, DFS, Tree]
16 Unique Binary Search Tree II.java Medium Java [BST, DP, Divide and Conquer, Tree]
17 Unique Binary Search Tree.java Medium Java [BST, DP, Tree]
18 Binary Search Tree Iterator.java Medium Java [BST, Design, Stack, Tree]
19 Count of Range Sum.java Hard Java [BST, Divide and Conquer, Merge Sort, PreSum]
20 Trim a Binary Search Tree.java Easy Java [BST, Tree]
21 Inorder Successor in BST.java Medium Java [BST, Tree]

Design (21)

Squence Problem Level Language Tags Video Tutorial
0 Insert Delete GetRandom O(1).java Medium Java [Array, Design, Hash Table]
1 Serialize and Deserialize Binary Tree.java Hard Java [BFS, DFS, Deque, Design, Divide and Conquer, Tree]
2 Binary Search Tree Iterator.java Medium Java [BST, Design, Stack, Tree]
3 Add and Search Word - Data structure design.java Medium Java [Backtracking, Design, Trie]
4 Flatten 2D Vector.java Medium Java [Design]
5 Singleton.java Easy Java [Design]
6 Peeking Iterator.java Medium Java [Design]
7 Perfect Rectangle.java Hard Java [Design, Geometry, Hash Table]
8 LFU Cache.java Hard Java [Design, Hash Table]
9 Unique Word Abbreviation.java Medium Java [Design, Hash Table]
10 ColorGrid.java Medium Java [Design, Hash Table]
11 LRU Cache.java Hard Java [Design, Hash Table, Linked List]
12 Design Search Autocomplete System.java Hard Java [Design, Hash Table, MinHeap, PriorityQueue, Trie]
13 Find Median from Data Stream.java Hard Java [Design, Heap, MaxHeap, MinHeap]
14 Sliding Window Median.java Hard Java [Design, Heap, MaxHeap, MinHeap, Sliding Window]
15 Moving Average from Data Stream.java Easy Java [Design, Queue, Sliding Window]
16 Flatten Nested List Iterator.java Medium Java [Design, Stack]
17 Min Stack.java Easy Java [Design, Stack]
18 Implement Queue using Stacks.java Easy Java [Design, Stack]
19 Implement Stack using Queues.java Easy Java [Design, Stack]
20 Implement Trie (Prefix Tree).java Medium Java [Design, Trie]

Sequence DP (19)

Squence Problem Level Language Tags Video Tutorial
0 Maximum Subarray.java Easy Java [Array, DFS, DP, Divide and Conquer, PreSum, Sequence DP, Subarray]
1 Maximum Subarray II.java Medium Java [Array, DP, Greedy, PreSum, Sequence DP, Subarray]
2 Best Time to Buy and Sell Stock II.java Easy Java [Array, DP, Greedy, Sequence DP, Status DP]
3 Best Time to Buy and Sell Stock with Transaction Fee.java Medium Java [Array, DP, Greedy, Sequence DP, Status DP]
4 Minimum Subarray.java Easy Java [Array, DP, Greedy, Sequence DP, Subarray]
5 Best Time to Buy and Sell Stock III.java Hard Java [Array, DP, Sequence DP]
6 Best Time to Buy and Sell Stock.java Easy Java [Array, DP, Sequence DP]
7 Longest Common Subsequence.java Medium Java [DP, Double Sequence DP, Sequence DP]
8 Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, String]
9 Longest Common Substring.java Medium Java [DP, Double Sequence DP, Sequence DP, String]
10 K Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, Trie]
11 Word Break.java Medium Java [DP, Hash Table, Sequence DP]
12 Climbing Stairs.java Easy Java [DP, Memoization, Sequence DP]
13 House Robber.java Easy Java [DP, Sequence DP]
14 Best Time to Buy and Sell Stock IV.java Hard Java [DP, Sequence DP]
15 Paint Fence.java Easy Java [DP, Sequence DP]
16 Paint House.java Easy Java [DP, Sequence DP, Status DP]
17 House Robber II.java Medium Java [DP, Sequence DP, Status DP]
18 Paint House II.java Hard Java [DP, Sequence DP, Status DP]

PriorityQueue (17)

Squence Problem Level Language Tags Video Tutorial
0 Task Scheduler.java Medium Java [Array, Enumeration, Greedy, PriorityQueue, Queue]
1 Number of Airplane in the sky.java Medium Java [Array, Interval, PriorityQueue, Sort, Sweep Line]
2 Insert Interval.java Hard Java [Array, PriorityQueue, Sort]
3 Merge Intervals.java Medium Java [Array, PriorityQueue, Sort, Sweep Line]
4 Trapping Rain Water II.java Hard Java [BFS, Heap, MinHeap, PriorityQueue]
5 The Skyline Problem.java Review Java [Binary Indexed Tree, Divide and Conquer, Heap, PriorityQueue, Segment Tree, Sweep Line]
6 Ugly Number II.java Medium Java [DP, Enumeration, Heap, Math, PriorityQueue]
7 Design Search Autocomplete System.java Hard Java [Design, Hash Table, MinHeap, PriorityQueue, Trie]
8 Merge k Sorted Lists.java Medium Java [Divide and Conquer, Heap, Linked List, PriorityQueue]
9 Kth Largest Element in an Array.java Medium Java [Divide and Conquer, Heap, MinHeap, PriorityQueue, Quick Sort]
10 Meeting Rooms II.java Medium Java [Greedy, Heap, PriorityQueue, Sort, Sweep Line]
11 Top K Frequent Elements.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue]
12 Top K Frequent Words.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue, Trie]
13 Merge k Sorted Arrays.java Medium Java [Heap, MinHeap, PriorityQueue]
14 Subarray Sum Closest.java Medium Java [PreSum, PriorityQueue, Sort, Subarray]
15 Exam Room.java Medium Java [PriorityQueue, Sort]
16 Meeting Rooms.java Easy Java [PriorityQueue, Sort, Sweep Line]

Bit Manipulation (17)

Squence Problem Level Language Tags Video Tutorial
0 Subsets.java Medium Java [Array, BFS, Backtracking, Bit Manipulation, DFS]
1 Majority Element.java Easy Java [Array, Bit Manipulation, Divide and Conquer]
2 Missing Number.java Easy Java [Array, Bit Manipulation, Math]
3 O(1) Check Power of 2.java Easy Java [Bit Manipulation]
4 Single Number II.java Medium Java [Bit Manipulation]
5 Single Number III.java Medium Java [Bit Manipulation]
6 Sum of Two Integers.java Easy Java [Bit Manipulation]
7 Swap Bits.java Easy Java [Bit Manipulation]
8 Update Bits.java Medium Java [Bit Manipulation]
9 Convert Integer A to Integer B.java Easy Java [Bit Manipulation]
10 Count 1 in Binary.java Easy Java [Bit Manipulation]
11 Total Hamming Distance.java Medium Java [Bit Manipulation]
12 Binary Gap.java Easy Java [Bit Manipulation]
13 Counting Bits.java Medium Java [Bit Manipulation, Bitwise DP, DP]
14 Power of Two.java Easy Java [Bit Manipulation, Math]
15 Binary Representation.java Hard Java [Bit Manipulation, String]
16 Maximum XOR of Two Numbers in an Array.java Medium Java [Bit Manipulation, Trie]

Coordinate DP (17)

Squence Problem Level Language Tags Video Tutorial
0 Triangles.java Medium Java [Array, Coordinate DP, DFS, DP, Memoization]
1 Unique Paths II.java Medium Java [Array, Coordinate DP, DP]
2 Unique Path.java Medium Java [Array, Coordinate DP, DP]
3 Longest Continuous Increasing Subsequence.java Easy Java [Array, Coordinate DP, DP]
4 Minimum Path Sum.java Medium Java [Array, Coordinate DP, DP]
5 Longest Increasing Continuous subsequence.java Easy Java [Array, Coordinate DP, DP]
6 Jump Game II.java Hard Java [Array, Coordinate DP, DP, Greedy]
7 Longest Increasing Continuous subsequence II.java Medium Java [Array, Coordinate DP, DP, Memoization]
8 Russian Doll Envelopes.java Hard Java [Binary Search, Coordinate DP, DP]
9 Longest Increasing Subsequence.java Medium Java [Binary Search, Coordinate DP, DP, Memoization]
10 Longest Increasing Path in a Matrix.java Hard Java [Coordinate DP, DFS, DP, Memoization, Topological Sort]
11 Bomb Enemy.java Medium Java [Coordinate DP, DP]
12 Maximal Square.java Medium Java [Coordinate DP, DP]
13 Number of Longest Increasing Subsequence.java Medium Java [Coordinate DP, DP]
14 Continuous Subarray Sum.java Medium Java [Coordinate DP, DP, Math, Subarray]
15 Minimum Swaps To Make Sequences Increasing.java Medium Java [Coordinate DP, DP, Status DP]
16 Longest Valid Parentheses.java Hard Java [Coordinate DP, Stack, String]

Heap (16)

Squence Problem Level Language Tags Video Tutorial
0 Trapping Rain Water II.java Hard Java [BFS, Heap, MinHeap, PriorityQueue]
1 The Skyline Problem.java Review Java [Binary Indexed Tree, Divide and Conquer, Heap, PriorityQueue, Segment Tree, Sweep Line]
2 Kth Smallest Element in a Sorted Matrix.java Medium Java [Binary Search, Heap]
3 Ugly Number II.java Medium Java [DP, Enumeration, Heap, Math, PriorityQueue]
4 Sliding Window Maximum.java Hard Java [Deque, Heap, Sliding Window]
5 Find Median from Data Stream.java Hard Java [Design, Heap, MaxHeap, MinHeap]
6 Sliding Window Median.java Hard Java [Design, Heap, MaxHeap, MinHeap, Sliding Window]
7 Merge k Sorted Lists.java Medium Java [Divide and Conquer, Heap, Linked List, PriorityQueue]
8 Kth Largest Element in an Array.java Medium Java [Divide and Conquer, Heap, MinHeap, PriorityQueue, Quick Sort]
9 Rearrange String k Distance Apart.java Hard Java [Greedy, Hash Table, Heap]
10 Meeting Rooms II.java Medium Java [Greedy, Heap, PriorityQueue, Sort, Sweep Line]
11 Top K Frequent Elements.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue]
12 Top K Frequent Words.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue, Trie]
13 HashHeap.java Hard Java [HashHeap, Heap]
14 Heapify.java Medium Java [Heap, MinHeap]
15 Merge k Sorted Arrays.java Medium Java [Heap, MinHeap, PriorityQueue]

Greedy (16)

Squence Problem Level Language Tags Video Tutorial
0 Jump Game II.java Hard Java [Array, Coordinate DP, DP, Greedy]
1 Jump Game.java Medium Java [Array, DP, Greedy]
2 Maximum Subarray II.java Medium Java [Array, DP, Greedy, PreSum, Sequence DP, Subarray]
3 Best Time to Buy and Sell Stock II.java Easy Java [Array, DP, Greedy, Sequence DP, Status DP]
4 Best Time to Buy and Sell Stock with Transaction Fee.java Medium Java [Array, DP, Greedy, Sequence DP, Status DP]
5 Minimum Subarray.java Easy Java [Array, DP, Greedy, Sequence DP, Subarray]
6 Task Scheduler.java Medium Java [Array, Enumeration, Greedy, PriorityQueue, Queue]
7 Find the Celebrity.java Medium Java [Array, Greedy]
8 Wildcard Matching.java Hard Java [Backtracking, DP, Greedy, String]
9 Coins in a Line.java Medium Java [DP, Game Theory, Greedy]
10 Majority Number II.java Medium Java [Enumeration, Greedy]
11 Queue Reconstruction by Height.java Medium Java [Greedy]
12 Gas Station.java Medium Java [Greedy]
13 Rearrange String k Distance Apart.java Hard Java [Greedy, Hash Table, Heap]
14 Remove Duplicate Letters.java Hard Java [Greedy, Hash Table, Stack]
15 Meeting Rooms II.java Medium Java [Greedy, Heap, PriorityQueue, Sort, Sweep Line]

Enumeration (14)

Squence Problem Level Language Tags Video Tutorial
0 Rotate Image.java Medium Java [Array, Enumeration]
1 Spiral Matrix.java Medium Java [Array, Enumeration]
2 Task Scheduler.java Medium Java [Array, Enumeration, Greedy, PriorityQueue, Queue]
3 Next Closest Time.java Medium Java [Basic Implementation, Enumeration, String]
4 Strobogrammatic Number II.java Medium Java [DFS, Enumeration, Math, Sequence DFS]
5 Ugly Number II.java Medium Java [DP, Enumeration, Heap, Math, PriorityQueue]
6 Decode Ways II.java Hard Java [DP, Enumeration, Partition DP]
7 Majority Number II.java Medium Java [Enumeration, Greedy]
8 Strobogrammatic Number.java Easy Java [Enumeration, Hash Table, Math]
9 Valid Number.java Hard Java [Enumeration, Math, String]
10 Integer to English Words.java Hard Java [Enumeration, Math, String]
11 Read N Characters Given Read4.java Easy Java [Enumeration, String]
12 Text Justification.java Hard Java [Enumeration, String]
13 Read N Characters Given Read4 II - Call multiple times.java Hard Java [Enumeration, String]

Binary Tree (13)

Squence Problem Level Language Tags Video Tutorial
0 Search Range in Binary Search Tree .java Medium Java [BST, Binary Tree]
1 Binary Tree Paths.java Easy Java [Backtracking, Binary Tree, DFS]
2 Flatten Binary Tree to Linked List.java Medium Java [Binary Tree, DFS]
3 Segment Tree Query.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
4 Segment Tree Modify.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
5 Segment Tree Query II.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
6 Expression Evaluation.java Hard Java [Binary Tree, DFS, Expression Tree, Minimum Binary Tree, Stack]
7 Convert Expression to Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
8 Convert Expression to Reverse Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
9 Segment Tree Build.java Medium Java [Binary Tree, Divide and Conquer, Lint, Segment Tree]
10 Segment Tree Build II.java Medium Java [Binary Tree, Divide and Conquer, Lint, Segment Tree]
11 Basic Calculator.java Hard Java [Binary Tree, Expression Tree, Math, Minimum Binary Tree, Stack]
12 Expression Tree Build.java Hard Java [Binary Tree, Expression Tree, Minimum Binary Tree, Stack]

Segment Tree (12)

Squence Problem Level Language Tags Video Tutorial
0 Count of Smaller Numbers After Self.java Hard Java [BST, Binary Indexed Tree, Binary Search, Divide and Conquer, Segment Tree]
1 Reverse Pairs.java Medium Java [Binary Indexed Tree, Binary Search Tree, Divide and Conquer, Merge Sort, Segment Tree]
2 The Skyline Problem.java Review Java [Binary Indexed Tree, Divide and Conquer, Heap, PriorityQueue, Segment Tree, Sweep Line]
3 Interval Minimum Number.java Medium Java [Binary Search, Divide and Conquer, Lint, Segment Tree]
4 Interval Sum.java Medium Java [Binary Search, Lint, Segment Tree]
5 Interval Sum II.java Hard Java [Binary Search, Lint, Segment Tree]
6 Count of Smaller Number.java Medium Java [Binary Search, Lint, Segment Tree]
7 Segment Tree Query.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
8 Segment Tree Modify.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
9 Segment Tree Query II.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
10 Segment Tree Build.java Medium Java [Binary Tree, Divide and Conquer, Lint, Segment Tree]
11 Segment Tree Build II.java Medium Java [Binary Tree, Divide and Conquer, Lint, Segment Tree]

Union Find (12)

Squence Problem Level Language Tags Video Tutorial
0 Longest Consecutive Sequence.java Hard Java [Array, Hash Table, Union Find]
1 Number of Connected Components in an Undirected Graph.java Medium Java [BFS, DFS, Graph, Union Find]
2 Graph Valid Tree.java Medium Java [BFS, DFS, Graph, Union Find]
3 Number of Islands.java Medium Java [BFS, DFS, Matrix DFS, Union Find]
4 Surrounded Regions.java Medium Java [BFS, DFS, Matrix DFS, Union Find]
5 Accounts Merge.java Medium Java [DFS, Hash Table, Hash Table, Union Find]
6 Connecting Graph.java Medium Java [Union Find]
7 Connecting Graph II.java Medium Java [Union Find]
8 Connecting Graph III.java Medium Java [Union Find]
9 Number of Islands II.java Hard Java [Union Find]
10 Find the Weak Connected Component in the Directed Graph.java Medium Java [Union Find]
11 Bricks Falling When Hit.java Hard Java [Union Find]

Memoization (12)

Squence Problem Level Language Tags Video Tutorial
0 Triangles.java Medium Java [Array, Coordinate DP, DFS, DP, Memoization]
1 Longest Increasing Continuous subsequence II.java Medium Java [Array, Coordinate DP, DP, Memoization]
2 Coins in a Line III.java Hard Java [Array, DP, Game Theory, Interval DP, Memoization]
3 Coins in a Line II.java Medium Java [Array, DP, Game Theory, Memoization, MiniMax]
4 Coin Change.java Medium Java [Backpack DP, DP, Memoization]
5 Word Break II.java Hard Java [Backtracking, DFS, DP, Hash Table, Memoization]
6 Longest Increasing Subsequence.java Medium Java [Binary Search, Coordinate DP, DP, Memoization]
7 Longest Increasing Path in a Matrix.java Hard Java [Coordinate DP, DFS, DP, Memoization, Topological Sort]
8 Longest Palindromic Subsequence.java Medium Java [DFS, DP, Interval DP, Memoization]
9 Burst Balloons.java Hard Java [DP, Divide and Conquer, Interval DP, Memoization]
10 Fibonacci.java Easy Java [DP, Math, Memoization]
11 Climbing Stairs.java Easy Java [DP, Memoization, Sequence DP]

Trie (11)

Squence Problem Level Language Tags Video Tutorial
0 Word Search II.java Hard Java [Backtracking, DFS, Trie]
1 Add and Search Word - Data structure design.java Medium Java [Backtracking, Design, Trie]
2 Word Squares.java Hard Java [Backtracking, Trie]
3 Maximum XOR of Two Numbers in an Array.java Medium Java [Bit Manipulation, Trie]
4 K Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, Trie]
5 Design Search Autocomplete System.java Hard Java [Design, Hash Table, MinHeap, PriorityQueue, Trie]
6 Implement Trie (Prefix Tree).java Medium Java [Design, Trie]
7 Top K Frequent Words.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue, Trie]
8 Palindrome Pairs.java Hard Java [Hash Table, String, Trie]
9 Longest Word in Dictionary.java Easy Java [Hash Table, Trie]
10 Prefix and Suffix Search.java Hard Java [Trie]

Subarray (11)

Squence Problem Level Language Tags Video Tutorial
0 Minimum Size Subarray Sum.java Medium Java [Array, Binary Search, Subarray, Two Pointers]
1 Maximum Subarray.java Easy Java [Array, DFS, DP, Divide and Conquer, PreSum, Sequence DP, Subarray]
2 Maximum Subarray II.java Medium Java [Array, DP, Greedy, PreSum, Sequence DP, Subarray]
3 Minimum Subarray.java Easy Java [Array, DP, Greedy, Sequence DP, Subarray]
4 Maximum Product Subarray.java Medium Java [Array, DP, Subarray]
5 Subarray Sum.java Easy Java [Array, Hash Table, PreSum, Subarray]
6 Subarray Sum Equals K.java Medium Java [Array, Hash Table, PreSum, Subarray]
7 Maximum Average Subarray I.java Easy Java [Array, Subarray]
8 Continuous Subarray Sum.java Medium Java [Coordinate DP, DP, Math, Subarray]
9 Maximum Size Subarray Sum Equals k.java Medium Java [Hash Table, PreSum, Subarray]
10 Subarray Sum Closest.java Medium Java [PreSum, PriorityQueue, Sort, Subarray]

PreSum (10)

Squence Problem Level Language Tags Video Tutorial
0 Maximum Average Subarray II.java Review Java [Array, Binary Search, PreSum]
1 Maximum Subarray.java Easy Java [Array, DFS, DP, Divide and Conquer, PreSum, Sequence DP, Subarray]
2 Maximum Subarray II.java Medium Java [Array, DP, Greedy, PreSum, Sequence DP, Subarray]
3 Submatrix Sum.java Medium Java [Array, Hash Table, PreSum]
4 Subarray Sum.java Easy Java [Array, Hash Table, PreSum, Subarray]
5 Subarray Sum Equals K.java Medium Java [Array, Hash Table, PreSum, Subarray]
6 Count of Range Sum.java Hard Java [BST, Divide and Conquer, Merge Sort, PreSum]
7 Range Sum Query - Immutable.java Easy Java [DP, PreSum]
8 Maximum Size Subarray Sum Equals k.java Medium Java [Hash Table, PreSum, Subarray]
9 Subarray Sum Closest.java Medium Java [PreSum, PriorityQueue, Sort, Subarray]

Lint (9)

Squence Problem Level Language Tags Video Tutorial
0 Interval Minimum Number.java Medium Java [Binary Search, Divide and Conquer, Lint, Segment Tree]
1 Interval Sum.java Medium Java [Binary Search, Lint, Segment Tree]
2 Interval Sum II.java Hard Java [Binary Search, Lint, Segment Tree]
3 Count of Smaller Number.java Medium Java [Binary Search, Lint, Segment Tree]
4 Segment Tree Query.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
5 Segment Tree Modify.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
6 Segment Tree Query II.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
7 Segment Tree Build.java Medium Java [Binary Tree, Divide and Conquer, Lint, Segment Tree]
8 Segment Tree Build II.java Medium Java [Binary Tree, Divide and Conquer, Lint, Segment Tree]

MinHeap (9)

Squence Problem Level Language Tags Video Tutorial
0 Trapping Rain Water II.java Hard Java [BFS, Heap, MinHeap, PriorityQueue]
1 Design Search Autocomplete System.java Hard Java [Design, Hash Table, MinHeap, PriorityQueue, Trie]
2 Find Median from Data Stream.java Hard Java [Design, Heap, MaxHeap, MinHeap]
3 Sliding Window Median.java Hard Java [Design, Heap, MaxHeap, MinHeap, Sliding Window]
4 Kth Largest Element in an Array.java Medium Java [Divide and Conquer, Heap, MinHeap, PriorityQueue, Quick Sort]
5 Top K Frequent Elements.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue]
6 Top K Frequent Words.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue, Trie]
7 Heapify.java Medium Java [Heap, MinHeap]
8 Merge k Sorted Arrays.java Medium Java [Heap, MinHeap, PriorityQueue]

Backpack DP (8)

Squence Problem Level Language Tags Video Tutorial
0 Combination Sum IV.java Medium Java [Array, Backpack DP, DP]
1 Backpack VI.java Medium Java [Backpack DP, DP]
2 Coin Change 2.java Medium Java [Backpack DP, DP]
3 Backpack.java Medium Java [Backpack DP, DP]
4 Backpack II.java Medium Java [Backpack DP, DP]
5 Backpack V.java Medium Java [Backpack DP, DP]
6 Backpack III.java Hard Java [Backpack DP, DP]
7 Coin Change.java Medium Java [Backpack DP, DP, Memoization]

Graph (7)

Squence Problem Level Language Tags Video Tutorial
0 Course Schedule.java Medium Java [BFS, Backtracking, DFS, Graph, Topological Sort]
1 Alien Dictionary.java Hard Java [BFS, Backtracking, DFS, Graph, Topological Sort]
2 Clone Graph.java Medium Java [BFS, DFS, Graph]
3 Course Schedule II.java Medium Java [BFS, DFS, Graph, Topological Sort]
4 Number of Connected Components in an Undirected Graph.java Medium Java [BFS, DFS, Graph, Union Find]
5 Graph Valid Tree.java Medium Java [BFS, DFS, Graph, Union Find]
6 Minimum Height Trees.java Medium Java [BFS, Graph]

Status DP (7)

Squence Problem Level Language Tags Video Tutorial
0 Best Time to Buy and Sell Stock II.java Easy Java [Array, DP, Greedy, Sequence DP, Status DP]
1 Best Time to Buy and Sell Stock with Transaction Fee.java Medium Java [Array, DP, Greedy, Sequence DP, Status DP]
2 Minimum Swaps To Make Sequences Increasing.java Medium Java [Coordinate DP, DP, Status DP]
3 House Robber III.java Medium Java [DFS, DP, Status DP, Tree]
4 Paint House.java Easy Java [DP, Sequence DP, Status DP]
5 House Robber II.java Medium Java [DP, Sequence DP, Status DP]
6 Paint House II.java Hard Java [DP, Sequence DP, Status DP]

Quick Sort (6)

Squence Problem Level Language Tags Video Tutorial
0 Sort Colors.java Medium Java [Array, Partition, Quick Sort, Sort, Two Pointers]
1 Median.java Easy Java [Array, Quick Select, Quick Sort]
2 Partition Array.java Medium Java [Array, Quick Sort, Sort, Two Pointers]
3 Kth Largest Element in an Array.java Medium Java [Divide and Conquer, Heap, MinHeap, PriorityQueue, Quick Sort]
4 Sort Colors II.java Medium Java [Partition, Quick Sort, Sort, Two Pointers]
5 QuickSort.java Medium Java [Quick Sort, Sort]

Partition DP (5)

Squence Problem Level Language Tags Video Tutorial
0 Perfect Squares.java Medium Java [BFS, DP, Math, Partition DP]
1 Copy Books.java Hard Java [Binary Search, DP, Partition DP]
2 Decode Ways II.java Hard Java [DP, Enumeration, Partition DP]
3 Palindrome Partitioning II.java Hard Java [DP, Partition DP]
4 Decode Ways.java Medium Java [DP, Partition DP, String]

Sweep Line (5)

Squence Problem Level Language Tags Video Tutorial
0 Number of Airplane in the sky.java Medium Java [Array, Interval, PriorityQueue, Sort, Sweep Line]
1 Merge Intervals.java Medium Java [Array, PriorityQueue, Sort, Sweep Line]
2 The Skyline Problem.java Review Java [Binary Indexed Tree, Divide and Conquer, Heap, PriorityQueue, Segment Tree, Sweep Line]
3 Meeting Rooms II.java Medium Java [Greedy, Heap, PriorityQueue, Sort, Sweep Line]
4 Meeting Rooms.java Easy Java [PriorityQueue, Sort, Sweep Line]

Topological Sort (5)

Squence Problem Level Language Tags Video Tutorial
0 Course Schedule.java Medium Java [BFS, Backtracking, DFS, Graph, Topological Sort]
1 Alien Dictionary.java Hard Java [BFS, Backtracking, DFS, Graph, Topological Sort]
2 Course Schedule II.java Medium Java [BFS, DFS, Graph, Topological Sort]
3 Topological Sorting.java Medium Java [BFS, DFS, Topological Sort]
4 Longest Increasing Path in a Matrix.java Hard Java [Coordinate DP, DFS, DP, Memoization, Topological Sort]

Sliding Window (5)

Squence Problem Level Language Tags Video Tutorial
0 Sliding Window Maximum.java Hard Java [Deque, Heap, Sliding Window]
1 Sliding Window Median.java Hard Java [Design, Heap, MaxHeap, MinHeap, Sliding Window]
2 Moving Average from Data Stream.java Easy Java [Design, Queue, Sliding Window]
3 Find All Anagrams in a String.java Easy Java [Hash Table, Sliding Window]
4 Longest Substring with At Most Two Distinct Characters.java Hard Java [Hash Table, Sliding Window, String, Two Pointers]

Expression Tree (5)

Squence Problem Level Language Tags Video Tutorial
0 Expression Evaluation.java Hard Java [Binary Tree, DFS, Expression Tree, Minimum Binary Tree, Stack]
1 Convert Expression to Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
2 Convert Expression to Reverse Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
3 Basic Calculator.java Hard Java [Binary Tree, Expression Tree, Math, Minimum Binary Tree, Stack]
4 Expression Tree Build.java Hard Java [Binary Tree, Expression Tree, Minimum Binary Tree, Stack]

Merge Sort (4)

Squence Problem Level Language Tags Video Tutorial
0 Count of Range Sum.java Hard Java [BST, Divide and Conquer, Merge Sort, PreSum]
1 Reverse Pairs.java Medium Java [Binary Indexed Tree, Binary Search Tree, Divide and Conquer, Merge Sort, Segment Tree]
2 Sort List.java Medium Java [Divide and Conquer, Linked List, Merge Sort, Sort]
3 MergeSort.java Medium Java [Merge Sort, Sort]

Double Sequence DP (4)

Squence Problem Level Language Tags Video Tutorial
0 Longest Common Subsequence.java Medium Java [DP, Double Sequence DP, Sequence DP]
1 Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, String]
2 Longest Common Substring.java Medium Java [DP, Double Sequence DP, Sequence DP, String]
3 K Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, Trie]

Game Theory (4)

Squence Problem Level Language Tags Video Tutorial
0 Coins in a Line III.java Hard Java [Array, DP, Game Theory, Interval DP, Memoization]
1 Coins in a Line II.java Medium Java [Array, DP, Game Theory, Memoization, MiniMax]
2 Nim Game.java Easy Java [Brainteaser, DP, Game Theory]
3 Coins in a Line.java Medium Java [DP, Game Theory, Greedy]

Combination (4)

Squence Problem Level Language Tags Video Tutorial
0 Combination Sum.java Medium Java [Array, Backtracking, Combination, DFS]
1 Combination Sum II.java Medium Java [Array, Backtracking, Combination, DFS]
2 Combination Sum III.java Medium Java [Array, Backtracking, Combination, DFS]
3 Combinations.java Medium Java [Backtracking, Combination, DFS]

Interval DP (4)

Squence Problem Level Language Tags Video Tutorial
0 Coins in a Line III.java Hard Java [Array, DP, Game Theory, Interval DP, Memoization]
1 Longest Palindromic Subsequence.java Medium Java [DFS, DP, Interval DP, Memoization]
2 Burst Balloons.java Hard Java [DP, Divide and Conquer, Interval DP, Memoization]
3 Scramble String.java Hard Java [DP, Interval DP, String]

MaxHeap (4)

Squence Problem Level Language Tags Video Tutorial
0 Find Median from Data Stream.java Hard Java [Design, Heap, MaxHeap, MinHeap]
1 Sliding Window Median.java Hard Java [Design, Heap, MaxHeap, MinHeap, Sliding Window]
2 Top K Frequent Elements.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue]
3 Top K Frequent Words.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue, Trie]

Permutation (3)

Squence Problem Level Language Tags Video Tutorial
0 Permutations.java Medium Java [Backtracking, DFS, Permutation]
1 Palindrome Permutation II.java Medium Java [Backtracking, Permutation]
2 Shuffle an Array.java Medium Java [Permutation]

Binary Indexed Tree (3)

Squence Problem Level Language Tags Video Tutorial
0 Count of Smaller Numbers After Self.java Hard Java [BST, Binary Indexed Tree, Binary Search, Divide and Conquer, Segment Tree]
1 Reverse Pairs.java Medium Java [Binary Indexed Tree, Binary Search Tree, Divide and Conquer, Merge Sort, Segment Tree]
2 The Skyline Problem.java Review Java [Binary Indexed Tree, Divide and Conquer, Heap, PriorityQueue, Segment Tree, Sweep Line]

Minimum Binary Tree (3)

Squence Problem Level Language Tags Video Tutorial
0 Expression Evaluation.java Hard Java [Binary Tree, DFS, Expression Tree, Minimum Binary Tree, Stack]
1 Basic Calculator.java Hard Java [Binary Tree, Expression Tree, Math, Minimum Binary Tree, Stack]
2 Expression Tree Build.java Hard Java [Binary Tree, Expression Tree, Minimum Binary Tree, Stack]

Basic Implementation (3)

Squence Problem Level Language Tags Video Tutorial
0 Cosine Similarity.java Easy Java [Basic Implementation]
1 Next Closest Time.java Medium Java [Basic Implementation, Enumeration, String]
2 Count and Say.java Easy Java [Basic Implementation, String]

Queue (3)

Squence Problem Level Language Tags Video Tutorial
0 Max Sum of Rectangle No Larger Than K.java Hard Java [Array, BST, Binary Search, DP, Queue, TreeSet]
1 Task Scheduler.java Medium Java [Array, Enumeration, Greedy, PriorityQueue, Queue]
2 Moving Average from Data Stream.java Easy Java [Design, Queue, Sliding Window]

Partition (3)

Squence Problem Level Language Tags Video Tutorial
0 Sort Colors.java Medium Java [Array, Partition, Quick Sort, Sort, Two Pointers]
1 Sort Colors II.java Medium Java [Partition, Quick Sort, Sort, Two Pointers]
2 Sort Letters by Case.java Medium Java [Partition, Sort, String, Two Pointers]

Sequence DFS (2)

Squence Problem Level Language Tags Video Tutorial
0 Generate Parentheses.java Medium Java [Backtracking, DFS, Sequence DFS, String]
1 Strobogrammatic Number II.java Medium Java [DFS, Enumeration, Math, Sequence DFS]

Double Recursive (2)

Squence Problem Level Language Tags Video Tutorial
0 Binary Tree Longest Consecutive Sequence II.java Medium Java [DFS, Divide and Conquer, Double Recursive, Tree]
1 Path Sum III.java Easy Java [DFS, Double Recursive, Tree]

TreeSet (2)

Squence Problem Level Language Tags Video Tutorial
0 Max Sum of Rectangle No Larger Than K.java Hard Java [Array, BST, Binary Search, DP, Queue, TreeSet]
1 K Empty Slots.java Hard Java [Array, BST, TreeSet]

Matrix DFS (2)

Squence Problem Level Language Tags Video Tutorial
0 Number of Islands.java Medium Java [BFS, DFS, Matrix DFS, Union Find]
1 Surrounded Regions.java Medium Java [BFS, DFS, Matrix DFS, Union Find]

Deque (2)

Squence Problem Level Language Tags Video Tutorial
0 Serialize and Deserialize Binary Tree.java Hard Java [BFS, DFS, Deque, Design, Divide and Conquer, Tree]
1 Sliding Window Maximum.java Hard Java [Deque, Heap, Sliding Window]

Geometry (2)

Squence Problem Level Language Tags Video Tutorial
0 Max Points on a Line.java Hard Java [Array, Geometry, Hash Table, Math]
1 Perfect Rectangle.java Hard Java [Design, Geometry, Hash Table]

HashHeap (1)

Squence Problem Level Language Tags Video Tutorial
0 HashHeap.java Hard Java [HashHeap, Heap]

Binary Search Tree (1)

Squence Problem Level Language Tags Video Tutorial
0 Reverse Pairs.java Medium Java [Binary Indexed Tree, Binary Search Tree, Divide and Conquer, Merge Sort, Segment Tree]

KMP (1)

Squence Problem Level Language Tags Video Tutorial
0 Shortest Palindrome.java Hard Java [KMP, String]

Brainteaser (1)

Squence Problem Level Language Tags Video Tutorial
0 Nim Game.java Easy Java [Brainteaser, DP, Game Theory]

Interval (1)

Squence Problem Level Language Tags Video Tutorial
0 Number of Airplane in the sky.java Medium Java [Array, Interval, PriorityQueue, Sort, Sweep Line]

Bitwise DP (1)

Squence Problem Level Language Tags Video Tutorial
0 Counting Bits.java Medium Java [Bit Manipulation, Bitwise DP, DP]

MiniMax (1)

Squence Problem Level Language Tags Video Tutorial
0 Coins in a Line II.java Medium Java [Array, DP, Game Theory, Memoization, MiniMax]

Quick Select (1)

Squence Problem Level Language Tags Video Tutorial
0 Median.java Easy Java [Array, Quick Select, Quick Sort]

Bucket Sort (1)

Squence Problem Level Language Tags Video Tutorial
0 H-Index.java Medium Java [Bucket Sort, Hash Table, Sort]

Monotonous Stack (1)

Squence Problem Level Language Tags Video Tutorial
0 Largest Rectangle in Histogram.java Hard Java [Array, Monotonous Stack, Stack]

PreProduct (1)

Squence Problem Level Language Tags Video Tutorial
0 Product of Array Except Self.java Medium Java [Array, PreProduct]

Reservior Sampling (1)

Squence Problem Level Language Tags Video Tutorial
0 Random Pick Index.java Medium Java [Reservior Sampling]

TreeMap (1)

Squence Problem Level Language Tags Video Tutorial
0 My Calendar I.java Medium Java [Array, TreeMap]

Two Stacks (1)

Squence Problem Level Language Tags Video Tutorial
0 Binary Tree Postorder Traversal.java Medium Java [Stack, Tree, Two Stacks]

Tree DP (1)

Squence Problem Level Language Tags Video Tutorial
0 Binary Tree Maximum Path Sum.java Hard Java [DFS, DP, Tree, Tree DP]