Skip to content

Latest commit

 

History

History
1942 lines (1481 loc) · 206 KB

TagREADME.md

File metadata and controls

1942 lines (1481 loc) · 206 KB

Table of Contents

Array (107)

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

DFS (95)

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 The Maze.java Medium Java [BFS, DFS]
19 Remove Invalid Parentheses.java Review Java [BFS, DFS, DP]
20 Serialize and Deserialize Binary Tree.java Hard Java [BFS, DFS, Deque, Design, Divide and Conquer, Tree]
21 Clone Graph.java Medium Java [BFS, DFS, Graph]
22 Course Schedule II.java Medium Java [BFS, DFS, Graph, Topological Sort]
23 Redundant Connection.java Medium Java [BFS, DFS, Graph, Tree, Union Find]
24 Evaluate Division.java Medium Java [BFS, DFS, Graph, Union Find]
25 Number of Connected Components in an Undirected Graph.java Medium Java [BFS, DFS, Graph, Union Find]
26 Graph Valid Tree.java Medium Java [BFS, DFS, Graph, Union Find]
27 Binary Tree Vertical Order Traversal.java Medium Java [BFS, DFS, Hash Table, Tree]
28 Number of Islands.java Medium Java [BFS, DFS, Matrix DFS, Union Find]
29 Surrounded Regions.java Medium Java [BFS, DFS, Matrix DFS, Union Find]
30 The Maze II.java Medium Java [BFS, DFS, PriorityQueue]
31 The Maze III.java Hard Java [BFS, DFS, PriorityQueue]
32 Binary Tree Preorder Traversal.java Easy Java [BFS, DFS, Stack, Tree]
33 Topological Sorting.java Medium Java [BFS, DFS, Topological Sort]
34 Invert Binary Tree.java Easy Java [BFS, DFS, Tree]
35 Minimum Depth of Binary Tree.java Easy Java [BFS, DFS, Tree]
36 Symmetric Tree.java Easy Java [BFS, DFS, Tree]
37 Binary Tree Level Order Traversal.java Medium Java [BFS, DFS, Tree]
38 Binary Tree Right Side View.java Medium Java [BFS, DFS, Tree]
39 Convert Sorted List to Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Linked List]
40 Convert Binary Search Tree to Sorted Doubly Linked List.java Medium Java [BST, DFS, Divide and Conquer, Linked List, Tree]
41 Validate Binary Search Tree.java Medium Java [BST, DFS, Divide and Conquer, Tree]
42 Kth Smallest Element in a BST.java Medium Java [BST, DFS, Stack, Tree]
43 Lowest Common Ancestor of a Binary Search Tree.java Medium Java [BST, DFS, Tree]
44 Recover Binary Search Tree.java Hard Java [BST, DFS, Tree]
45 Binary Tree Paths.java Easy Java [Backtracking, Binary Tree, DFS]
46 Combinations.java Medium Java [Backtracking, Combination, DFS]
47 Palindrome Partitioning.java Medium Java [Backtracking, DFS]
48 Robot Room Cleaner.java Hard Java [Backtracking, DFS]
49 Flip Game II.java Medium Java [Backtracking, DFS, DP]
50 Word Break II.java Hard Java [Backtracking, DFS, DP, Hash Table, Memoization]
51 Expression Add Operators.java Hard Java [Backtracking, DFS, Divide and Conquer, String]
52 Permutations.java Medium Java [Backtracking, DFS, Permutation]
53 Generate Parentheses.java Medium Java [Backtracking, DFS, Sequence DFS, String]
54 Restore IP Addresses.java Medium Java [Backtracking, DFS, String]
55 Path Sum II.java Easy Java [Backtracking, DFS, Tree]
56 Word Search II.java Hard Java [Backtracking, DFS, Trie]
57 Find Peak Element II.java Hard Java [Binary Search, DFS, Divide and Conquer]
58 Flatten Binary Tree to Linked List.java Medium Java [Binary Tree, DFS]
59 Segment Tree Query.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
60 Segment Tree Modify.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
61 Segment Tree Query II.java Medium Java [Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]
62 Expression Evaluation.java Hard Java [Binary Tree, DFS, Expression Tree, Minimum Binary Tree, Stack]
63 Convert Expression to Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
64 Convert Expression to Reverse Polish Notation.java Hard Java [Binary Tree, DFS, Expression Tree, Stack]
65 Longest Increasing Path in a Matrix.java Hard Java [Coordinate DP, DFS, DP, Memoization, Topological Sort]
66 Flood Fill.java Easy Java [DFS]
67 Target Sum.java Medium Java [DFS, DP]
68 Longest Palindromic Subsequence.java Medium Java [DFS, DP, Interval DP, Memoization]
69 House Robber III.java Medium Java [DFS, DP, Status DP, Tree]
70 Binary Tree Maximum Path Sum.java Hard Java [DFS, DP, Tree, Tree DP]
71 Fast Power.java Medium Java [DFS, Divide and Conquer]
72 Binary Tree Longest Consecutive Sequence II.java Medium Java [DFS, Divide and Conquer, Double Recursive, Tree]
73 Decode String.java Medium Java [DFS, Divide and Conquer, Stack]
74 Convert Sorted Array to Binary Search Tree.java Easy Java [DFS, Divide and Conquer, Tree]
75 Populating Next Right Pointers in Each Node.java Medium Java [DFS, Divide and Conquer, Tree]
76 Binary Tree Longest Consecutive Sequence.java Medium Java [DFS, Divide and Conquer, Tree]
77 Smallest Subtree with all the Deepest Nodes.java Medium Java [DFS, Divide and Conquer, Tree]
78 Subtree of Another Tree.java Easy Java [DFS, Divide and Conquer, Tree]
79 Path Sum III.java Easy Java [DFS, Double Recursive, Tree]
80 Strobogrammatic Number II.java Medium Java [DFS, Enumeration, Math, Sequence DFS]
81 Redundant Connection II.java Hard Java [DFS, Graph, Tree, Union Find]
82 Cracking the Safe.java Hard Java [DFS, Greedy, Math]
83 Accounts Merge.java Medium Java [DFS, Hash Table, Hash Table, Union Find]
84 Path Sum IV.java Medium Java [DFS, Hash Table, Tree]
85 Same Tree.java Easy Java [DFS, Tree]
86 Balanced Binary Tree.java Medium Java [DFS, Tree]
87 Maximum Depth of Binary Tree.java Easy Java [DFS, Tree]
88 Tweaked Identical Binary Tree.java Easy Java [DFS, Tree]
89 Merge Two Binary Trees.java Easy Java [DFS, Tree]
90 Subtree.java Easy Java [DFS, Tree]
91 Lowest Common Ancestor of a Binary Tree.java Medium Java [DFS, Tree]
92 Path Sum.java Easy Java [DFS, Tree]
93 Binary Tree Maximum Path Sum II.java Medium Java [DFS, Tree]
94 Populating Next Right Pointers in Each Node II.java Medium Java [DFS, Tree]

DP (85)

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, Double Sequence DP, Greedy, Sequence DP, String]
36 Regular Expression Matching.java Hard Java [Backtracking, DP, Double Sequence DP, Sequence 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 Maximum Vacation Days.java Hard Java [DP]
57 Burst Balloons.java Hard Java [DP, Divide and Conquer, Interval DP, Memoization]
58 Longest Common Subsequence.java Medium Java [DP, Double Sequence DP, Sequence DP]
59 Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, String]
60 Longest Common Substring.java Medium Java [DP, Double Sequence DP, Sequence DP, String]
61 K Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, Trie]
62 Ugly Number II.java Medium Java [DP, Enumeration, Heap, Math, PriorityQueue]
63 Decode Ways II.java Hard Java [DP, Enumeration, Partition DP]
64 Coins in a Line.java Medium Java [DP, Game Theory, Greedy]
65 Frog Jump.java Hard Java [DP, Hash Table]
66 Word Break.java Medium Java [DP, Hash Table, Sequence DP]
67 Scramble String.java Hard Java [DP, Interval DP, String]
68 Number Of Corner Rectangles.java Medium Java [DP, Math]
69 Fibonacci.java Easy Java [DP, Math, Memoization]
70 Climbing Stairs.java Easy Java [DP, Memoization, Sequence DP]
71 Predict the Winner.java Medium Java [DP, MiniMax]
72 Palindrome Partitioning II.java Hard Java [DP, Partition DP]
73 Decode Ways.java Medium Java [DP, Partition DP, String]
74 Range Sum Query - Immutable.java Easy Java [DP, PreSum]
75 House Robber.java Easy Java [DP, Sequence DP]
76 Best Time to Buy and Sell Stock IV.java Hard Java [DP, Sequence DP]
77 Paint Fence.java Easy Java [DP, Sequence DP]
78 Paint House.java Easy Java [DP, Sequence DP, Status DP]
79 House Robber II.java Medium Java [DP, Sequence DP, Status DP]
80 Paint House II.java Hard Java [DP, Sequence DP, Status DP]
81 Interleaving String.java Hard Java [DP, String]
82 Distinct Subsequences.java Hard Java [DP, String]
83 Longest Palindromic Substring.java Medium Java [DP, String]
84 Palindromic Substrings.java Medium Java [DP, String]

Hash Table (69)

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 Valid Sudoku.java Easy Java [Enumeration, Hash Table]
30 Strobogrammatic Number.java Easy Java [Enumeration, Hash Table, Math]
31 Rearrange String k Distance Apart.java Hard Java [Greedy, Hash Table, Heap]
32 Remove Duplicate Letters.java Hard Java [Greedy, Hash Table, Stack]
33 Jewels and Stones.java Easy Java [Hash Table]
34 Find Anagram Mappings.java Easy Java [Hash Table]
35 Island Perimeter.java Easy Java [Hash Table]
36 Palindrome Permutation.java Easy Java [Hash Table]
37 Hash Function.java Easy Java [Hash Table]
38 HashWithCustomizedClass(LinkedList).java Medium Java [Hash Table]
39 Rehashing.java Medium Java [Hash Table]
40 Sparse Matrix Multiplication.java Medium Java [Hash Table]
41 Brick Wall.java Medium Java [Hash Table]
42 Contiguous Array.java Medium Java [Hash Table]
43 4Sum.java Medium Java [Hash Table]
44 Isomorphic Strings.java Easy Java [Hash Table]
45 Top K Frequent Elements.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue]
46 Top K Frequent Words.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue, Trie]
47 Majority Number III.java Medium Java [Hash Table, Linked List]
48 Copy List with Random Pointer.java Medium Java [Hash Table, Linked List]
49 Fraction to Recurring Decimal.java Medium Java [Hash Table, Math]
50 Encode and Decode TinyURL.java Medium Java [Hash Table, Math]
51 Count Primes.java Easy Java [Hash Table, Math]
52 Line Reflection.java Medium Java [Hash Table, Math]
53 Maximum Size Subarray Sum Equals k.java Medium Java [Hash Table, PreSum, Subarray]
54 Find All Anagrams in a String.java Easy Java [Hash Table, Sliding Window]
55 Longest Substring with At Most K Distinct Characters.java Hard Java [Hash Table, Sliding Window, String]
56 Longest Substring with At Most Two Distinct Characters.java Hard Java [Hash Table, Sliding Window, String, Two Pointers]
57 Valid Anagram.java Easy Java [Hash Table, Sort]
58 Next Greater Element I.java Easy Java [Hash Table, Stack]
59 Binary Tree Inorder Traversal.java Easy Java [Hash Table, Stack, Tree]
60 Group Anagrams.java Medium Java [Hash Table, String]
61 Longest Words.java Easy Java [Hash Table, String]
62 First Unique Character in a String.java Easy Java [Hash Table, String]
63 Group Shifted Strings.java Medium Java [Hash Table, String]
64 Palindrome Pairs.java Hard Java [Hash Table, String, Trie]
65 Longest Substring Without Repeating Characters.java Medium Java [Hash Table, String, Two Pointers]
66 Minimum Window Substring.java Hard Java [Hash Table, String, Two Pointers]
67 Lowest Common Ancestor II.java Easy Java [Hash Table, Tree]
68 Longest Word in Dictionary.java Easy Java [Hash Table, Trie]

String (60)

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, Double Sequence DP, Greedy, Sequence DP, String]
6 Regular Expression Matching.java Hard Java [Backtracking, DP, Double Sequence DP, Sequence 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 K Distinct Characters.java Hard Java [Hash Table, Sliding Window, String]
26 Longest Substring with At Most Two Distinct Characters.java Hard Java [Hash Table, Sliding Window, String, Two Pointers]
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 Group Shifted Strings.java Medium Java [Hash Table, String]
31 Palindrome Pairs.java Hard Java [Hash Table, String, Trie]
32 Longest Substring Without Repeating Characters.java Medium Java [Hash Table, String, Two Pointers]
33 Minimum Window Substring.java Hard Java [Hash Table, String, Two Pointers]
34 Shortest Palindrome.java Hard Java [KMP, String]
35 Multiply Strings.java Medium Java [Math, String]
36 String to Integer (atoi).java Medium Java [Math, String]
37 Roman to Integer.java Easy Java [Math, String]
38 Add Binary.java Easy Java [Math, String, Two Pointers]
39 Sort Letters by Case.java Medium Java [Partition, Sort, String, Two Pointers]
40 Simplify Path.java Medium Java [Stack, String]
41 Valid Parentheses.java Easy Java [Stack, String]
42 Space Replacement.java Medium Java [String]
43 Judge Route Circle.java Easy Java [String]
44 Change to Anagram.java Easy Java [String]
45 Compare Version Numbers.java Medium Java [String]
46 Compare Strings.java Easy Java [String]
47 Flip Game.java Easy Java [String]
48 Length of Last Word.java Easy Java [String]
49 Rotate String.java Easy Java [String]
50 Encode and Decode Strings.java Medium Java [String]
51 Longest Common Prefix.java Easy Java [String]
52 Reverse Words in a String.java Medium Java [String]
53 Reverse Words in a String II.java Medium Java [String]
54 Reverse Words in a String III.java Easy Java [String]
55 Valid Palindrome II.java Easy Java [String]
56 One Edit Distance.java Medium Java [String]
57 Reverse Vowels of a String.java Easy Java [String, Two Pointers]
58 Implement strStr().java Easy Java [String, Two Pointers]
59 Valid Palindrome.java Easy Java [String, Two Pointers]

Tree (55)

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

BFS (39)

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 Bus Routes.java Hard Java [BFS]
6 Course Schedule.java Medium Java [BFS, Backtracking, DFS, Graph, Topological Sort]
7 Alien Dictionary.java Hard Java [BFS, Backtracking, DFS, Graph, Topological Sort]
8 Nested List Weight Sum.java Easy Java [BFS, DFS]
9 Find the Connected Component in the Undirected Graph.java Medium Java [BFS, DFS]
10 Walls and Gates.java Medium Java [BFS, DFS]
11 The Maze.java Medium Java [BFS, DFS]
12 Remove Invalid Parentheses.java Review Java [BFS, DFS, DP]
13 Serialize and Deserialize Binary Tree.java Hard Java [BFS, DFS, Deque, Design, Divide and Conquer, Tree]
14 Clone Graph.java Medium Java [BFS, DFS, Graph]
15 Course Schedule II.java Medium Java [BFS, DFS, Graph, Topological Sort]
16 Redundant Connection.java Medium Java [BFS, DFS, Graph, Tree, Union Find]
17 Evaluate Division.java Medium Java [BFS, DFS, Graph, Union Find]
18 Number of Connected Components in an Undirected Graph.java Medium Java [BFS, DFS, Graph, Union Find]
19 Graph Valid Tree.java Medium Java [BFS, DFS, Graph, Union Find]
20 Binary Tree Vertical Order Traversal.java Medium Java [BFS, DFS, Hash Table, Tree]
21 Number of Islands.java Medium Java [BFS, DFS, Matrix DFS, Union Find]
22 Surrounded Regions.java Medium Java [BFS, DFS, Matrix DFS, Union Find]
23 The Maze II.java Medium Java [BFS, DFS, PriorityQueue]
24 The Maze III.java Hard Java [BFS, DFS, PriorityQueue]
25 Binary Tree Preorder Traversal.java Easy Java [BFS, DFS, Stack, Tree]
26 Topological Sorting.java Medium Java [BFS, DFS, Topological Sort]
27 Invert Binary Tree.java Easy Java [BFS, DFS, Tree]
28 Minimum Depth of Binary Tree.java Easy Java [BFS, DFS, Tree]
29 Symmetric Tree.java Easy Java [BFS, DFS, Tree]
30 Binary Tree Level Order Traversal.java Medium Java [BFS, DFS, Tree]
31 Binary Tree Right Side View.java Medium Java [BFS, DFS, Tree]
32 Perfect Squares.java Medium Java [BFS, DP, Math, Partition DP]
33 Minimum Height Trees.java Medium Java [BFS, Graph]
34 Sliding Puzzle.java Hard Java [BFS, Graph]
35 Trapping Rain Water II.java Hard Java [BFS, Heap, MinHeap, PriorityQueue]
36 Binary Tree Zigzag Level Order Traversal.java Medium Java [BFS, Stack, Tree]
37 Complete Binary Tree.java Easy Java [BFS, Tree]
38 Binary Tree Level Order Traversal II.java Medium Java [BFS, Tree]

Math (38)

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 Cracking the Safe.java Hard Java [DFS, Greedy, Math]
14 Ugly Number II.java Medium Java [DP, Enumeration, Heap, Math, PriorityQueue]
15 Number Of Corner Rectangles.java Medium Java [DP, Math]
16 Fibonacci.java Easy Java [DP, Math, Memoization]
17 Strobogrammatic Number.java Easy Java [Enumeration, Hash Table, Math]
18 Valid Number.java Hard Java [Enumeration, Math, String]
19 Integer to English Words.java Hard Java [Enumeration, Math, String]
20 Fraction to Recurring Decimal.java Medium Java [Hash Table, Math]
21 Encode and Decode TinyURL.java Medium Java [Hash Table, Math]
22 Count Primes.java Easy Java [Hash Table, Math]
23 Line Reflection.java Medium Java [Hash Table, Math]
24 Add Two Numbers.java Medium Java [Linked List, Math]
25 Linked List Cycle II.java Medium Java [Linked List, Math, Two Pointers]
26 Trailing Zeros.java Easy Java [Math]
27 Power of Three.java Easy Java [Math]
28 Add Digits.java Easy Java [Math]
29 Reverse Integer.java Easy Java [Math]
30 Excel Sheet Column Number.java Easy Java [Math]
31 Excel Sheet Column Title.java Easy Java [Math]
32 Ugly Number.java Medium Java [Math]
33 Number of Digit One.java Hard Java [Math]
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]

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]

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]

Backtracking (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 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 Robot Room Cleaner.java Hard Java [Backtracking, DFS]
17 Flip Game II.java Medium Java [Backtracking, DFS, DP]
18 Word Break II.java Hard Java [Backtracking, DFS, DP, Hash Table, Memoization]
19 Expression Add Operators.java Hard Java [Backtracking, DFS, Divide and Conquer, String]
20 Permutations.java Medium Java [Backtracking, DFS, Permutation]
21 Generate Parentheses.java Medium Java [Backtracking, DFS, Sequence DFS, String]
22 Restore IP Addresses.java Medium Java [Backtracking, DFS, String]
23 Path Sum II.java Easy Java [Backtracking, DFS, Tree]
24 Word Search II.java Hard Java [Backtracking, DFS, Trie]
25 Wildcard Matching.java Hard Java [Backtracking, DP, Double Sequence DP, Greedy, Sequence DP, String]
26 Regular Expression Matching.java Hard Java [Backtracking, DP, Double Sequence DP, Sequence DP, String]
27 Add and Search Word - Data structure design.java Medium Java [Backtracking, Design, Trie]
28 Permutation Sequence.java Medium Java [Backtracking, Math]
29 Palindrome Permutation II.java Medium Java [Backtracking, Permutation]
30 Letter Combinations of a Phone Number.java Medium Java [Backtracking, String]
31 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 (30)

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 Next Greater Element I.java Easy Java [Hash Table, Stack]
20 Binary Tree Inorder Traversal.java Easy Java [Hash Table, Stack, Tree]
21 Convert Binary Search Tree to Sorted Doubly Linked List (extra space).java Medium Java [Linked List, Stack, Tree]
22 Evaluate Reverse Polish Notation.java Medium Java [Stack]
23 Implement Stack.java Easy Java [Stack]
24 Exclusive Time of Functions.java Medium Java [Stack]
25 Simplify Path.java Medium Java [Stack, String]
26 Valid Parentheses.java Easy Java [Stack, String]
27 Maximum Binary Tree.java Medium Java [Stack, Tree]
28 Binary Tree Postorder Traversal.java Medium Java [Stack, Tree, Two Stacks]
29 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 Singleton.java Easy Java [Design]
5 Peeking Iterator.java Medium Java [Design]
6 Flatten 2D Vector.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 (21)

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 Wildcard Matching.java Hard Java [Backtracking, DP, Double Sequence DP, Greedy, Sequence DP, String]
8 Regular Expression Matching.java Hard Java [Backtracking, DP, Double Sequence DP, Sequence DP, String]
9 Longest Common Subsequence.java Medium Java [DP, Double Sequence DP, Sequence DP]
10 Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, String]
11 Longest Common Substring.java Medium Java [DP, Double Sequence DP, Sequence DP, String]
12 K Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, Trie]
13 Word Break.java Medium Java [DP, Hash Table, Sequence DP]
14 Climbing Stairs.java Easy Java [DP, Memoization, Sequence DP]
15 House Robber.java Easy Java [DP, Sequence DP]
16 Best Time to Buy and Sell Stock IV.java Hard Java [DP, Sequence DP]
17 Paint Fence.java Easy Java [DP, Sequence DP]
18 Paint House.java Easy Java [DP, Sequence DP, Status DP]
19 House Robber II.java Medium Java [DP, Sequence DP, Status DP]
20 Paint House II.java Hard Java [DP, Sequence DP, Status DP]

PriorityQueue (19)

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 The Maze II.java Medium Java [BFS, DFS, PriorityQueue]
5 The Maze III.java Hard Java [BFS, DFS, PriorityQueue]
6 Trapping Rain Water II.java Hard Java [BFS, Heap, MinHeap, PriorityQueue]
7 The Skyline Problem.java Review Java [Binary Indexed Tree, Divide and Conquer, Heap, PriorityQueue, Segment Tree, Sweep Line]
8 Ugly Number II.java Medium Java [DP, Enumeration, Heap, Math, PriorityQueue]
9 Design Search Autocomplete System.java Hard Java [Design, Hash Table, MinHeap, PriorityQueue, Trie]
10 Merge k Sorted Lists.java Medium Java [Divide and Conquer, Heap, Linked List, PriorityQueue]
11 Kth Largest Element in an Array.java Medium Java [Divide and Conquer, Heap, MinHeap, PriorityQueue, Quick Sort]
12 Meeting Rooms II.java Medium Java [Greedy, Heap, PriorityQueue, Sort, Sweep Line]
13 Top K Frequent Elements.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue]
14 Top K Frequent Words.java Medium Java [Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue, Trie]
15 Merge k Sorted Arrays.java Medium Java [Heap, MinHeap, PriorityQueue]
16 Subarray Sum Closest.java Medium Java [PreSum, PriorityQueue, Sort, Subarray]
17 Exam Room.java Medium Java [PriorityQueue, Sort]
18 Meeting Rooms.java Easy Java [PriorityQueue, Sort, Sweep Line]

Greedy (18)

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, Double Sequence DP, Greedy, Sequence DP, String]
9 Cracking the Safe.java Hard Java [DFS, Greedy, Math]
10 Coins in a Line.java Medium Java [DP, Game Theory, Greedy]
11 Majority Number II.java Medium Java [Enumeration, Greedy]
12 Queue Reconstruction by Height.java Medium Java [Greedy]
13 Gas Station.java Medium Java [Greedy]
14 Rearrange String k Distance Apart.java Hard Java [Greedy, Hash Table, Heap]
15 Remove Duplicate Letters.java Hard Java [Greedy, Hash Table, Stack]
16 Meeting Rooms II.java Medium Java [Greedy, Heap, PriorityQueue, Sort, Sweep Line]
17 Delete Digits.java Medium Java [Greedy, Priority Queue]

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]

Union Find (15)

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

Enumeration (15)

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 Valid Sudoku.java Easy Java [Enumeration, Hash Table]
9 Strobogrammatic Number.java Easy Java [Enumeration, Hash Table, Math]
10 Valid Number.java Hard Java [Enumeration, Math, String]
11 Integer to English Words.java Hard Java [Enumeration, Math, String]
12 Read N Characters Given Read4.java Easy Java [Enumeration, String]
13 Text Justification.java Hard Java [Enumeration, String]
14 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]

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]

Graph (11)

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 Redundant Connection.java Medium Java [BFS, DFS, Graph, Tree, Union Find]
5 Evaluate Division.java Medium Java [BFS, DFS, Graph, Union Find]
6 Number of Connected Components in an Undirected Graph.java Medium Java [BFS, DFS, Graph, Union Find]
7 Graph Valid Tree.java Medium Java [BFS, DFS, Graph, Union Find]
8 Minimum Height Trees.java Medium Java [BFS, Graph]
9 Sliding Puzzle.java Hard Java [BFS, Graph]
10 Redundant Connection II.java Hard Java [DFS, Graph, Tree, Union Find]

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]

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]

Double Sequence DP (6)

Squence Problem Level Language Tags Video Tutorial
0 Wildcard Matching.java Hard Java [Backtracking, DP, Double Sequence DP, Greedy, Sequence DP, String]
1 Regular Expression Matching.java Hard Java [Backtracking, DP, Double Sequence DP, Sequence DP, String]
2 Longest Common Subsequence.java Medium Java [DP, Double Sequence DP, Sequence DP]
3 Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, String]
4 Longest Common Substring.java Medium Java [DP, Double Sequence DP, Sequence DP, String]
5 K Edit Distance.java Hard Java [DP, Double Sequence DP, Sequence DP, Trie]

Sliding Window (6)

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 K Distinct Characters.java Hard Java [Hash Table, Sliding Window, String]
5 Longest Substring with At Most Two Distinct Characters.java Hard Java [Hash Table, Sliding Window, String, Two Pointers]

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]

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]

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]

MiniMax (2)

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

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]

Priority Queue (1)

Squence Problem Level Language Tags Video Tutorial
0 Delete Digits.java Medium Java [Greedy, Priority Queue]

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]

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]