132 Pattern |
Stack |
Medium |

3Sum |
Array |
Medium |

3Sum Closest |
Array |
Medium |

4Sum |
Greedy |
Medium |

4Sum II |
Hash |
Medium |

A data structure with insert/remove/random in O(1) |
Design |
Medium |

Add and Search Word - Data structure design |
Backtracking |
Medium |

Add Binary |
Math |
Easy |

Add Digits |
Math |
Easy |

Add Strings |
Math |
Easy |

Add Two Numbers |
Math |
Easy |

Add Two Numbers II |
Linklist |
Medium |

Additive Number |
Math |
Medium |

All O`one Data Structure |
Design |
Hard |

Anagrams |
Hash |
Medium |

Arithmetic Slices |
Dynamic Programming |
Medium |

Arithmetic Slices II - Subsequence |
Dynamic Programming |
Hard |

Arranging Coins |
Search |
Easy |

Assign Cookies |
Greedy |
Easy |

Balanced Binary Tree |
Tree |
Medium |

Basic Calculator |
Stack |
Hard |

Basic Calculator II |
String |
Medium |

Battleships in a Board |
Math |
Medium |

Best Time to Buy and Sell Stock |
Dynamic Programming |
Easy |

Best Time to Buy and Sell Stock II |
Greedy |
Medium |

Best Time to Buy and Sell Stock III |
Dynamic Programming |
Hard |

Best Time to Buy and Sell Stock IV |
Dynamic Programming |
Hard |

Best Time to Buy and Sell Stock with Cooldown |
Dynamic Programming |
Medium |

Binary Search Tree Iterator |
Tree |
Medium |

Binary Tree Inorder Traversal |
Tree |
Medium |

Binary Tree Level Order Traversal |
Tree |
Medium |

Binary Tree Level Order Traversal II |
Tree |
Medium |

Binary Tree Maximum Path Sum |
Tree |
Hard |

Binary Tree Paths |
Tree |
Easy |

Binary Tree Post Order Traversal |
Tree |
Medium |

Binary Tree Preorder Traversal |
Tree |
Medium |

Binary Tree Right Side View |
Tree |
Medium |

Binary Tree Zigzag Level Order Traversal |
Tree |
Medium |

Binary Watch |
Backtracking |
Easy |

Bitwise AND of Numbers Range |
Bit Manipulation |
Medium |

Bubble Sort |
Sort |
Easy |

Build Stack by Queue |
Stack |
Easy |

Bulb Switcher |
Math |
Medium |

Bulls and Cows |
Hash |
Easy |

Burst Balloons |
Dynamic Programming |
Hard |

Calculate Diameter of Binary Tree |
Tree |
Medium |

Calculate Diameter of Multi-Node Tree |
Tree |
Hard |

Calculate String Formula Result |
Stack |
Hard |

Can I Win |
Dynamic Programming |
Medium |

Candy |
Hash |
Hard |

Check Rotated String |
String |
Easy |

Climbing Stairs |
Dynamic Programming |
Easy |

Clone Graph |
Graph |
Medium |

Coin Change |
Dynamic Programming |
Medium |

Combination Sum |
Backtracking |
Medium |

Combination Sum II |
Backtracking |
Medium |

Combination Sum III |
Backtracking |
Medium |

Combination Sum IV |
Dynamic Programming |
Medium |

Combinations |
Backtracking |
Medium |

Compare Version Numbers |
String |
Easy |

Concatenated Words |
Dynamic Programming |
Hard |

Construct Binary Tree from Inorder and Postorder Traversal |
Tree |
Medium |

Construct Binary Tree from Preorder and Inorder Traversal |
Dynamic Programming |
Easy |

Container With Most Water |
Math |
Medium |

Contains Duplicate |
Hash |
Easy |

Contains Duplicate II |
Hash |
Easy |

Contains Duplicate III |
Tree |
Medium |

Convert a Number to Hexadecimal |
Bit Manipulation |
Easy |

Convert Sorted Array to Binary Search Tree |
Tree |
Medium |

Convert Sorted List to Binary Search Tree |
Tree |
Medium |

Copy List with Random Pointer |
Greedy |
Hard |

Count and Say |
String |
Easy |

Count Complete Tree Nodes |
Tree |
Medium |

Count Numbers with Unique Digits |
Dynamic Programming |
Medium |

Count of Range Sum |
Tree |
Hard |

Count of Smaller Numbers After Self |
Math |
Hard |

Count Primes |
Math |
Easy |

Count The Repetitions |
Dynamic Programming |
Hard |

Counting Bits |
Recursion |
Medium |

Course Schedule |
Graph |
Medium |

Course Schedule II |
Graph |
Medium |

Create Maximum Number |
Greedy |
Hard |

Data Stream as Disjoint Intervals |
Tree |
Hard |

Decode String |
Recursion |
Medium |

Decode Ways |
Dynamic Programming |
Medium |

Delete Node in a BST |
Tree |
Medium |

Delete Node in a Linked List |
Linklist |
Easy |

Design Twitter |
Design |
Medium |

Different Ways to Add Parentheses |
Recursion |
Medium |

Distinct Subsequences |
Dynamic Programming |
Hard |

Divide Two Integers |
Math |
Medium |

Edit Distance |
Dynamic Programming |
Hard |

Elimination Game |
Array |
Medium |

Evaluate Division |
Graph |
Medium |

Evaluate Reverse Polish Notation |
Stack |
Medium |

Excel Sheet Column Number |
Math |
Easy |

Excel Sheet Column Title |
Math |
Easy |

Expression Add Operators |
Recursion |
Medium |

Factorial Trailing Zeroes |
Math |
Easy |

Find All Anagrams in a String |
Hash |
Easy |

Find All Duplicates in an Array |
Array |
Medium |

Find All Numbers Disappeared in an Array |
Array |
Easy |

Find K Pairs with Smallest Sums |
Array |
Medium |

Find Median from Data Stream |
Design |
Medium |

Find Median Number in Unsorted Array |
Sort |
Medium |

Find Minimum in Rotated Sorted Array |
Search |
Medium |

Find Minimum in Rotated Sorted Array II |
Search |
Medium |

Find Peak Element |
Search |
Medium |

Find Right Interval |
Search |
Medium |

Find the Difference |
Hash |
Easy |

Find the Duplicate Number |
Math |
Hard |

First Bad Version |
Binary Search |
Easy |

First Missing Positive |
Array |
Hard |

First Unique Character in a String |
String |
Easy |

Fizz Buzz |
String |
Easy |

Flatten Binary Tree to Linked List |
Tree |
Medium |

Flatten Nested List Iterator |
Linklist |
Medium |

Fraction to Recurring Decimal |
Hash |
Medium |

Frog Jump |
Dynamic Programming |
Hard |

Game of Life |
Array |
Medium |

Gas Station |
Hash |
Medium |

Generate Parentheses |
Backtracking |
Medium |

Gray Code |
Backtracking |
Medium |

Group Anagrams |
Hash |
Medium |

Guess Number Higher or Lower |
Binary Search |
Easy |

Guess Number Higher or Lower II |
Dynamic Programming |
Medium |

H-Index |
Hash |
Medium |

H-Index II |
Binary Search |
Medium |

Hamming Distance |
Bit Manipulation |
Easy |

Happy Number |
Math |
Easy |

Heaters |
Binary Search |
Easy |

House Robber |
Dynamic Programming |
Easy |

House Robber II |
Dynamic Programming |
Medium |

House Robber III |
Dynamic Programming |
Medium |

Huge Array Integer Search |
Search |
Easy |

Implement Queue using Stacks |
Stack |
Easy |

Implement Stack using Queues |
Stack |
Easy |

Implement strStr() |
String |
Easy |

Implement Trie (Prefix Tree) |
Tree |
Medium |

Increasing Triplet Subsequence |
Array |
Medium |

Insert Delete GetRandom O(1) |
Hash |
Hard |

Insert Delete GetRandom O(1) - Duplicates allowed |
Hash |
Hard |

Insert Interval |
Sort |
Hard |

Insertion Sort List |
Linklist |
Medium |

Integer Break |
Math |
Medium |

Integer Replacemen |
Math |
Medium |

Integer to English Words |
Math |
Hard |

Integer To Roman |
Math |
Medium |

Interleaving String |
String |
Hard |

Intersection of Two Arrays |
Sort |
Easy |

Intersection of Two Arrays II |
Array |
Easy |

Intersection of Two Linked Lists |
Linklist |
Easy |

Invert Binary Tree |
Tree |
Easy |

Inverted Index Partitioning |
Design |
Medium |

Is Subsequence |
Greedy |
Medium |

Island Perimeter |
Hash |
Easy |

Isomorphic Strings |
Hash |
Easy |

Jump Game |
Hash |
Medium |

Jump Game II |
Hash |
Hard |

K-th Smallest in Lexicographical Order |
Search |
Hard |

Kth Largest Element in an Array |
Heap |
Medium |

Kth Smallest Element in a BST |
Tree |
Medium |

Kth Smallest Element in a Sorted Matrix |
Binary Search |
Medium |

Largest Divisible Subset |
Dynamic Programming |
Medium |

Largest Number |
Math |
Medium |

Largest Rectangle in Histogram |
Array |
Hard |

Length of Last Word |
String |
Easy |

Letter Combinations of a Phone Number |
Backtracking |
Medium |

Lexicographical Numbers |
String |
Medium |

Linked List Cycle |
Linklist |
Medium |

Linked List Cycle II |
Linklist |
Medium |

Linked List Random Node |
Linklist |
Medium |

Longest Absolute File Path |
Array |
Medium |

Longest Common Prefix |
String |
Easy |

Longest Consecutive Sequence |
Array |
Hard |

Longest Increasing Path in a Matrix |
Matrix |
Hard |

Longest Increasing Subsequence |
Array |
Medium |

Longest Palindrome |
Hash |
Easy |

Longest Palindromic Substring |
String |
Medium |

Longest Repeating Character Replacement |
Search |
Medium |

Longest Substring with At Least K Repeating Characters |
Hash |
Medium |

Longest Substring Without Repeating Characters |
String |
Medium |

Longest Valid Parentheses |
Dynamic Programming |
Hard |

Lowest Common Ancestor of a Binary Search Tree |
Tree |
Easy |

Lowest Common Ancestor of a Binary Tree |
Tree |
Medium |

LRU Cache |
Design |
Hard |

Majority Element |
Array |
Easy |

Majority Element II |
Array |
Medium |

Matchsticks to Square |
Recursion |
Medium |

Max Points on a Line |
Greedy |
Hard |

Max Sum of Rectangle No Larger Than K |
Dynamic Programming |
Hard |

Maximal Rectangle |
Dynamic Programming |
Hard |

Maximal Square |
Dynamic Programming |
Medium |

Maximum Depth of Binary Tree |
Tree |
Easy |

Maximum Gap |
Sort |
Hard |

Maximum Product of Word Lengths |
Bit Manipulation |
Medium |

Maximum Product Subarray |
Dynamic Programming |
Medium |

Maximum Subarray |
Array |
Medium |

Maximum XOR of Two Numbers in an Array |
Bit Manipulation |
Medium |

Median of Two Sorted Arrays |
Array |
Hard |

Merge Intervals |
Sort |
Hard |

Merge k Sorted Lists |
Linklist |
Hard |

Merge Sorted Array |
Array |
Easy |

Merge Two Sorted Lists |
Linklist |
Easy |

Min Stack |
Stack |
Easy |

Mini Parser |
String |
Medium |

Minimum Depth of Binary Tree |
Tree |
Medium |

Minimum Height Trees |
Tree |
Medium |

Minimum Moves to Equal Array Elements |
Math |
Easy |

Minimum Moves to Equal Array Elements II |
Math |
Medium |

Minimum Number of Arrows to Burst Balloons |
Greedy |
Medium |

Minimum Path Sum |
Dynamic Programming |
Medium |

Minimum Size Subarray Sum |
Array |
Medium |

Minimum Window Substring |
String |
Hard |

Missing Number |
Bit Manipulation |
Medium |

Move Zeroes |
Array |
Easy |

Multiply Strings |
String |
Medium |

N-Queens |
Backtracking |
Hard |

N-Queens II |
Backtracking |
Hard |

Next Permutation |
Array |
Medium |

Nim Game |
Math |
Easy |

Non-overlapping Intervals |
Greedy |
Medium |

Nth Digit |
Math |
Easy |

Number of 1 Bits |
Bit Manipulation |
Easy |

Number of Boomerangs |
Hash |
Easy |

Number of Digit One |
Math |
Hard |

Number of Islands |
Graph |
Medium |

Number of Segments in a String |
String |
Easy |

Odd Even Linked List |
Linklist |
Medium |

Ones and Zeroes |
Dynamic Programming |
Medium |

Pacific Atlantic Water Flow |
Search |
Medium |

Palindrome Linked List |
Linklist |
Easy |

Palindrome Number |
Math |
Easy |

Palindrome Pairs |
String |
Hard |

Palindrome Partitioning |
Backtracking |
Medium |

Palindrome Partitioning II |
Dynamic Programming |
Hard |

Partition Equal Subset Sum |
Dynamic Programming |
Medium |

Partition List |
Linklist |
Medium |

Pascal's Triangle |
Array |
Easy |

Pascal's Triangle II |
Array |
Easy |

Patching Array |
Greedy |
Hard |

Path Sum |
Tree |
Easy |

Path Sum II |
Dynamic Programming |
Easy |

Path Sum III |
Tree |
Easy |

Peeking Iterator |
Iterrator |
Medium |

Perfect Rectangle |
Matrix |
Hard |

Perfect Squares |
Dynamic Programming |
Medium |

Permutation Sequence |
Backtracking |
Medium |

Permutations |
Backtracking |
Medium |

Permutations II |
Backtracking |
Medium |

Plus One |
Array |
Easy |

Populating Next Right Pointers in Each Node |
Tree |
Medium |

Populating Next Right Pointers in Each Node II |
Tree |
Hard |

Pow |
Math |
Easy |

Power of Four |
Math |
Easy |

Power of Three |
Math |
Easy |

Power of Two |
Math |
Easy |

Product of Array Except Self |
Array |
Medium |

Queue Reconstruction by Height |
Greedy |
Medium |

Quick Sort |
Sort |
Medium |

Random Pick Index |
Math |
Medium |

Range Sum Query - Immutable |
Array |
Easy |

Range Sum Query - Mutable |
Array |
Medium |

Range Sum Query 2D - Immutable |
Matrix |
Medium |

Ransom Note |
String |
Easy |

Reconstruct Itinerary |
Graph |
Medium |

Reconstruct Original Digits from English |
Math |
Medium |

Recover Binary Search Tree |
Tree |
Medium |

Rectangle Area |
Math |
Easy |

Regular Expression Matching |
String |
Hard |

Remove Duplicate Letters |
Greedy |
Hard |

Remove Duplicates from Sorted Array |
Array |
Easy |

Remove Duplicates from Sorted Array II |
Array |
Medium |

Remove Duplicates from Sorted List |
Linklist |
Easy |

Remove Duplicates from Sorted List II |
Linklist |
Medium |

Remove Element |
Array |
Easy |

Remove Invalid Parentheses |
Recursion |
Hard |

Remove K Digits |
Stack |
Medium |

Remove Linked List Elements |
Linklist |
Easy |

Remove Nth Node From End of List |
Linklist |
Medium |

Reorder List |
Linklist |
Medium |

Repeated DNA Sequences |
Hash |
Medium |

Repeated Substring Pattern |
String |
Easy |

Restore IP Addresses |
Backtracking |
Medium |

Reverse Bits |
Bit Manipulation |
Easy |

Reverse Integer |
Math |
Easy |

Reverse Linked List |
Linklist |
Easy |

Reverse Linked List II |
Linklist |
Medium |

Reverse Nodes in k-Group |
Backtracking |
Hard |

Reverse String |
String |
Easy |

Reverse Vowels of a String |
Hash |
Easy |

Reverse Words in a String |
String |
Medium |

Roman to Integer |
Math |
Easy |

Rotate Array |
Array |
Easy |

Rotate Function |
Math |
Easy |

Rotate Image |
Array |
Medium |

Rotate List |
Linklist |
Medium |

Russian Doll Envelopes |
Array |
Hard |

Same Tree |
Tree |
Easy |

Scramble String |
Dynamic Programming |
Hard |

Search a 2D Matrix |
Search |
Hard |

Search a 2D Matrix II |
Binary Search |
Medium |

Search for a Range |
Search |
Medium |

Search in Rotated Sorted Array |
Search |
Hard |

Search in Rotated Sorted Array II |
Search |
Medium |

Search Insert Position |
Search |
Medium |

Searching a 2D Sorted Matrix Part II |
Search |
Medium |

Self Crossing |
Math |
Hard |

Serialize and Deserialize Binary Tree |
Tree |
Hard |

Serialize and Deserialize BST |
Tree |
Medium |

Set Matrix Zeroes |
Array |
Medium |

Shortest Palindrome |
String |
Hard |

Shuffle an Array |
Array |
Medium |

Simplify Path |
Stack |
Medium |

Single Number |
Bit Manipulation |
Medium |

Single Number II |
Bit Manipulation |
Medium |

Single Number III |
Bit Manipulation |
Medium |

Sliding Window Maximum |
Heap |
Hard |

Sort Characters By Frequency |
Hash |
Medium |

Sort Colors |
Sort |
Medium |

Sort List |
Linklist |
Medium |

Spiral Matrix |
Array |
Medium |

Spiral Matrix II |
Array |
Medium |

Split Array Largest Sum |
Dynamic Programming |
Hard |

Sqrt(x) |
Math |
Medium |

String to Integer |
String |
Medium |

Strong Password Checker |
String |
Hard |

Subsets |
Backtracking |
Medium |

Subsets II |
Backtracking |
Medium |

Substring with Concatenation of All Words |
String |
Hard |

Sudoku Solver |
Backtracking |
Hard |

Sum of Left Leaves |
Tree |
Easy |

Sum of Two Integers |
Math |
Easy |

Sum Root to Leaf Numbers |
Tree |
Medium |

Summary Ranges |
Array |
Medium |

Super Pow |
Math |
Medium |

Super Ugly Number |
Math |
Medium |

Surrounded Regions |
Search |
Medium |

Swap Nodes in Pairs |
Linklist |
Medium |

Symmetric Tree |
Tree |
Medium |

Text Justification |
String |
Hard |

The Skyline Problem |
Tree |
Hard |

Third Maximum Number |
Array |
Easy |

Top K Frequent Elements |
Hash |
Medium |

Total Hamming Distance |
Bit Manipulation |
Medium |

Trapping Rain Water |
Array |
Hard |

Trapping Rain Water II |
Search |
Hard |

Triangle |
Dynamic Programming |
Medium |

Two Sum |
Greedy |
Easy |

Two Sum II - Input array is sorted |
Array |
Medium |

Ugly Number |
Math |
Easy |

Ugly Number II |
Math |
Medium |

Unique Binary Search Trees |
Tree |
Medium |

Unique Binary Search Trees II |
Tree |
Medium |

Unique Paths |
Dynamic Programming |
Medium |

Unique Paths II |
Dynamic Programming |
Medium |

Unique Substrings in Wraparound String |
Dynamic Programming |
Medium |

UTF-8 Validation |
String |
Medium |

Valid Anagram |
Sort |
Easy |

Valid Number |
Math |
Hard |

Valid Palindrome |
String |
Easy |

Valid Parentheses |
Stack |
Easy |

Valid Perfect Square |
Math |
Medium |

Valid Sudoku |
Greedy |
Easy |

Validate Binary Search Tree |
Tree |
Medium |

Validate IP Address |
Dynamic Programming |
Medium |

Verify Preorder Serialization of a Binary Tree |
Tree |
Medium |

Water and Jug Problem |
Math |
Medium |

What are Private key and public key - usage and purpose |
knowledge |
Easy |

Wiggle Sort II |
Sort |
Medium |

Wiggle Subsequence |
Dynamic Programming |
Medium |

Wildcard Matching |
Dynamic Programming |
Hard |

wood cut |
Search |
Medium |

Word Break |
Dynamic Programming |
Medium |

Word Break II |
Dynamic Programming |
Hard |

Word Ladder |
String |
Medium |

Word Ladder II |
String |
Hard |

Word Pattern |
Hash |
Easy |

Word Search |
Search |
Medium |

Word Search II |
Backtracking |
Hard |

ZigZag Conversion |
String |
Easy |