|270|Missing Number.java|Easy|Java|[Array, Bit Manipulation, Math]||
|271|LRU Cache.java|Hard|Java|[Design, Hash Table, Linked List]||
|272|Remove Duplicates from Sorted Array.java|Easy|Java|[Array, Two Pointers]||
|273|Remove Duplicates from Sorted Array II.java|Medium|Java|[Array, Two Pointers]||
|274|Remove Duplicates from Sorted List.java|Easy|Java|[Linked List]||
|275|Remove Duplicates from Sorted List II.java|Medium|Java|[Linked List]||
|276|QuickSort.java|Medium|Java|[Quick Sort, Sort]||
|277|MergeSort.java|Medium|Java|[Merge Sort, Sort]||
|278|Longest Word in Dictionary.java|Easy|Java|[Hash Table, Trie]||
|279|Binary Tree Level Order Traversal.java|Medium|Java|[BFS, DFS, Tree]||
|280|Binary Tree Level Order Traversal II.java|Medium|Java|[BFS, Tree]||
|281|Binary Tree Longest Consecutive Sequence II.java|Medium|Java|[DFS, Divide and Conquer, Double Recursive, Tree]||
|282|Binary Tree Maximum Path Sum.java|Hard|Java|[DFS, DP, Tree, Tree DP]||
|283|Path Sum.java|Easy|Java|[DFS, Tree]||
|284|Path Sum II.java|Easy|Java|[Backtracking, DFS, Tree]||
|285|Path Sum III.java|Easy|Java|[DFS, Double Recursive, Tree]||
|286|Rotate String.java|Easy|Java|[String]||
|287|Combinations.java|Medium|Java|[Backtracking, Combination, DFS]||
|288|Combination Sum IV.java|Medium|Java|[Array, Backpack DP, DP]||
|289|Binary Tree Right Side View.java|Medium|Java|[BFS, DFS, Tree]||
|290|Binary Tree Maximum Path Sum II.java|Medium|Java|[DFS, Tree]||
|291|Rotate List.java|Medium|Java|[Linked List, Two Pointers]||
|292|Basic Calculator.java|Hard|Java|[Binary Tree, Expression Tree, Math, Minimum Binary Tree, Stack]||
|293|Longest Consecutive Sequence.java|Hard|Java|[Array, Hash Table, Union Find]||
|294|Binary Tree Longest Consecutive Sequence.java|Medium|Java|[DFS, Divide and Conquer, Tree]||
|295|Number of Connected Components in an Undirected Graph.java|Medium|Java|[BFS, DFS, Graph, Union Find]||
|296|Next Closest Time.java|Medium|Java|[Basic Implementation, Enumeration, String]||
|297|Serialize and Deserialize Binary Tree.java|Hard|Java|[BFS, DFS, Deque, Design, Divide and Conquer, Tree]||
|298|Partition Array.java|Medium|Java|[Array, Quick Sort, Sort, Two Pointers]||
|299|Word Ladder.java|Medium|Java|[BFS]||
|300|Unique Word Abbreviation.java|Medium|Java|[Design, Hash Table]||
|301|Unique Binary Search Tree II.java|Medium|Java|[BST, DP, Divide and Conquer, Tree]||
|302|Ugly Number.java|Medium|Java|[Math]||
|303|Top K Frequent Words.java|Medium|Java|[Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue, Trie]||
|304|Segment Tree Build.java|Medium|Java|[Binary Tree, Divide and Conquer, Lint, Segment Tree]||
|305|Segment Tree Build II.java|Medium|Java|[Binary Tree, Divide and Conquer, Lint, Segment Tree]||
|306|Segment Tree Query.java|Medium|Java|[Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]||
|307|Segment Tree Modify.java|Medium|Java|[Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]||
|308|Segment Tree Query II.java|Medium|Java|[Binary Tree, DFS, Divide and Conquer, Lint, Segment Tree]||
|309|Count of Smaller Numbers After Self.java|Hard|Java|[BST, Binary Indexed Tree, Binary Search, Divide and Conquer, Segment Tree]||
|310|ColorGrid.java|Medium|Java|[Design, Hash Table]||
|311|Container With Most Water.java|Medium|Java|[Array, Two Pointers]||
|312|Copy List with Random Pointer.java|Medium|Java|[Hash Table, Linked List]||
|313|Encode and Decode Strings.java|Medium|Java|[String]||
|314|Fast Power.java|Medium|Java|[DFS, Divide and Conquer]||
|315|Find the Connected Component in the Undirected Graph.java|Medium|Java|[BFS, DFS]||
|316|HashWithCustomizedClass(LinkedList).java|Medium|Java|[Hash Table]||
|317|Interval Minimum Number.java|Medium|Java|[Binary Search, Divide and Conquer, Lint, Segment Tree]||
|318|Interval Sum.java|Medium|Java|[Binary Search, Lint, Segment Tree]||
|319|Kth Smallest Element in a BST.java|Medium|Java|[BST, DFS, Stack, Tree]||
|320|Longest Common Prefix.java|Easy|Java|[String]||
|321|Majority Element II.java|Medium|Java|[Array]||
|322|Partition List.java|Medium|Java|[Linked List, Two Pointers]||
|323|Peeking Iterator.java|Medium|Java|[Design]||
|324|Rehashing.java|Medium|Java|[Hash Table]||
|325|Reorder List.java|Medium|Java|[Linked List]||
|326|Restore IP Addresses.java|Medium|Java|[Backtracking, DFS, String]||
|327|Reverse Words in a String.java|Medium|Java|[String]||
|328|Reverse Words in a String II.java|Medium|Java|[String]||
|329|Reverse Words in a String III.java|Easy|Java|[String]||
|330|Search a 2D Matrix.java|Medium|Java|[Array, Binary Search]||
|331|Search a 2D Matrix II.java|Medium|Java|[Binary Search, Divide and Conquer]||
|332|Search for a Range.java|Medium|Java|[Array, Binary Search]||
|333|Search Range in Binary Search Tree .java|Medium|Java|[BST, Binary Tree]||
|334|Merge Sorted Array II.java|Easy|Java|[Array]||
|335|Nth to Last Node in List.java|Easy|Java|[Linked List]||
|336|Sort List.java|Medium|Java|[Divide and Conquer, Linked List, Merge Sort, Sort]||
|337|Summary Ranges.java|Medium|Java|[Array]||
|338|Topological Sorting.java|Medium|Java|[BFS, DFS, Topological Sort]||
|339|Remove Duplicate Letters.java|Hard|Java|[Greedy, Hash Table, Stack]||
|340|Spiral Matrix.java|Medium|Java|[Array, Enumeration]||
|341|Expression Add Operators.java|Hard|Java|[Backtracking, DFS, Divide and Conquer, String]||
|342|Insert Interval.java|Hard|Java|[Array, PriorityQueue, Sort]||
|343|Shortest Palindrome.java|Hard|Java|[KMP, String]||
|344|Two Sum.java|Easy|Java|[Array, Hash Table]||
|345|K Empty Slots.java|Hard|Java|[Array, BST, TreeSet]||
|346|Count of Range Sum.java|Hard|Java|[BST, Divide and Conquer, Merge Sort, PreSum]||
|347|Max Sum of Rectangle No Larger Than K.java|Hard|Java|[Array, BST, Binary Search, DP, Queue, TreeSet]||
|348|Perfect Rectangle.java|Hard|Java|[Design, Geometry, Hash Table]||
|349|Construct Binary Tree from Inorder and Postorder Traversal.java|Medium|Java|[Array, DFS, Divide and Conquer, Tree]||
|350|Generate Parentheses.java|Medium|Java|[Backtracking, DFS, Sequence DFS, String]||
|351|Strobogrammatic Number II.java|Medium|Java|[DFS, Enumeration, Math, Sequence DFS]||
|352|Flip Game II.java|Medium|Java|[Backtracking, DFS, DP]||
|353|Max Area of Island.java|Easy|Java|[Array, DFS]||
|354|Max Points on a Line.java|Hard|Java|[Array, Geometry, Hash Table, Math]||
|355|Number of Digit One.java|Hard|Java|[Math]||
|356|Binary Representation.java|Hard|Java|[Bit Manipulation, String]||
|357|Palindrome Partitioning.java|Medium|Java|[Backtracking, DFS]||
|358|Recover Binary Search Tree.java|Hard|Java|[BST, DFS, Tree]||
|359|Subarray Sum.java|Easy|Java|[Array, Hash Table, PreSum, Subarray]||
|360|Submatrix Sum.java|Medium|Java|[Array, Hash Table, PreSum]||
|361|Longest Palindromic Substring.java|Medium|Java|[DP, String]||
|362|Longest Palindromic Subsequence.java|Medium|Java|[DFS, DP, Interval DP, Memoization]||
|363|Jump Game II.java|Hard|Java|[Array, Coordinate DP, DP, Greedy]||
|364|Gas Station.java|Medium|Java|[Greedy]||
|365|Triangles.java|Medium|Java|[Array, Coordinate DP, DFS, DP, Memoization]||
|366|Range Sum Query - Immutable.java|Easy|Java|[DP, PreSum]||
|367|Longest Valid Parentheses.java|Hard|Java|[Coordinate DP, Stack, String]||
|368|Remove Invalid Parentheses.java|Review|Java|[BFS, DFS, DP]||
|369|Merge Intervals.java|Medium|Java|[Array, PriorityQueue, Sort, Sweep Line]||
|370|H-Index.java|Medium|Java|[Bucket Sort, Hash Table, Sort]||
|371|H-Index II.java|Medium|Java|[Binary Search]||
|372|Sort Colors.java|Medium|Java|[Array, Partition, Quick Sort, Sort, Two Pointers]||
|373|Sort Colors II.java|Medium|Java|[Partition, Quick Sort, Sort, Two Pointers]||
|374|Sort Letters by Case.java|Medium|Java|[Partition, Sort, String, Two Pointers]||
|375|Subarray Sum Closest.java|Medium|Java|[PreSum, PriorityQueue, Sort, Subarray]||
|376|Task Scheduler.java|Medium|Java|[Array, Enumeration, Greedy, PriorityQueue, Queue]||
|377|Rearrange String k Distance Apart.java|Hard|Java|[Greedy, Hash Table, Heap]||
|378|Exam Room.java|Medium|Java|[PriorityQueue, Sort]||
|379|Anagrams.java|Medium|Java|[Array, Hash Table]||
|380|Path Sum IV.java|Medium|Java|[DFS, Hash Table, Tree]||
|381|Longest Words.java|Easy|Java|[Hash Table, String]||
|382|Unique Characters.java|Easy|Java|[Array, String]||
|383|Number Of Corner Rectangles.java|Medium|Java|[DP, Math]||
|384|Palindromic Substrings.java|Medium|Java|[DP, String]||
|385|Multiply Strings.java|Medium|Java|[Math, String]||
|386|Subsets.java|Medium|Java|[Array, BFS, Backtracking, Bit Manipulation, DFS]||
|387|Subsets II.java|Medium|Java|[Array, BFS, Backtracking, DFS]||
|388|Combination Sum.java|Medium|Java|[Array, Backtracking, Combination, DFS]||
|389|Combination Sum II.java|Medium|Java|[Array, Backtracking, Combination, DFS]||
|390|Combination Sum III.java|Medium|Java|[Array, Backtracking, Combination, DFS]||
|391|Product of Array Except Self.java|Medium|Java|[Array, PreProduct]||
|392|Total Hamming Distance.java|Medium|Java|[Bit Manipulation]||
|393|Smallest Subtree with all the Deepest Nodes.java|Medium|Java|[DFS, Divide and Conquer, Tree]||
|394|Binary Gap.java|Easy|Java|[Bit Manipulation]||
|395|Subarray Sum Equals K.java|Medium|Java|[Array, Hash Table, PreSum, Subarray]||
|396|Maximize Distance to Closest Person.java|Easy|Java|[Array]||
|397|Simplify Path.java|Medium|Java|[Stack, String]||
|398|Convert Binary Search Tree to Sorted Doubly Linked List (extra space).java|Medium|Java|[Linked List, Stack, Tree]||
|399|Paint Fence.java|Easy|Java|[DP, Sequence DP]||
|400|Binary Tree Zigzag Level Order Traversal.java|Medium|Java|[BFS, Stack, Tree]||
|401|Word Break.java|Medium|Java|[DP, Hash Table, Sequence DP]||
|402|Best Time to Buy and Sell Stock.java|Easy|Java|[Array, DP, Sequence DP]||
|403|Best Time to Buy and Sell Stock II.java|Easy|Java|[Array, DP, Greedy, Sequence DP, Status DP]||
|404|Longest Increasing Subsequence.java|Medium|Java|[Binary Search, Coordinate DP, DP, Memoization]||
|405|Best Time to Buy and Sell Stock with Transaction Fee.java|Medium|Java|[Array, DP, Greedy, Sequence DP, Status DP]||
|406|Random Pick Index.java|Medium|Java|[Reservior Sampling]||
|407|Find the Celebrity.java|Medium|Java|[Array, Greedy]||
|408|Sparse Matrix Multiplication.java|Medium|Java|[Hash Table]||
|409|Brick Wall.java|Medium|Java|[Hash Table]||
|410|Exclusive Time of Functions.java|Medium|Java|[Stack]||
|411|Friends Of Appropriate Ages.java|Medium|Java|[Array, Math]||
|412|Target Sum.java|Medium|Java|[DFS, DP]||
|413|Maximum Size Subarray Sum Equals k.java|Medium|Java|[Hash Table, PreSum, Subarray]||
|414|Contiguous Array.java|Medium|Java|[Hash Table]||
|415|Line Reflection.java|Medium|Java|[Hash Table, Math]||
|416|Insert Delete GetRandom O(1).java|Medium|Java|[Array, Design, Hash Table]||
|417|Number of Longest Increasing Subsequence.java|Medium|Java|[Coordinate DP, DP]||
|418|Minimum Swaps To Make Sequences Increasing.java|Medium|Java|[Coordinate DP, DP, Status DP]||
|419|Binary Tree Vertical Order Traversal.java|Medium|Java|[BFS, DFS, Hash Table, Tree]||
|420|Populating Next Right Pointers in Each Node II.java|Medium|Java|[DFS, Tree]||
|421|Search in Rotated Sorted Array.java|Medium|Java|[Array, Binary Search]||
|422|Minimum Subarray.java|Easy|Java|[Array, DP, Greedy, Sequence DP, Subarray]||
|423|Valid Number.java|Hard|Java|[Enumeration, Math, String]||
|424|Find the Weak Connected Component in the Directed Graph.java|Medium|Java|[Union Find]||
|425|Accounts Merge.java|Medium|Java|[DFS, Hash Table, Hash Table, Union Find]||
|426|Bricks Falling When Hit.java|Hard|Java|[Union Find]||
|427|Interval Sum II.java|Hard|Java|[Binary Search, Lint, Segment Tree]||
|428|Count of Smaller Number.java|Medium|Java|[Binary Search, Lint, Segment Tree]||
|429|HashHeap.java|Hard|Java|[HashHeap, Heap]||
|430|My Calendar I.java|Medium|Java|[Array, TreeMap]||
|431|Reverse Pairs.java|Medium|Java|[Binary Indexed Tree, Binary Search Tree, Divide and Conquer, Merge Sort, Segment Tree]||
|432|Trapping Rain Water II.java|Hard|Java|[BFS, Heap, MinHeap, PriorityQueue]||
|433|Kth Largest Element in an Array.java|Medium|Java|[Divide and Conquer, Heap, MinHeap, PriorityQueue, Quick Sort]||
|434|Merge k Sorted Lists.java|Medium|Java|[Divide and Conquer, Heap, Linked List, PriorityQueue]||
|435|Merge k Sorted Arrays.java|Medium|Java|[Heap, MinHeap, PriorityQueue]||
|436|Heapify.java|Medium|Java|[Heap, MinHeap]||
|437|Top K Frequent Elements.java|Medium|Java|[Hash Table, Heap, MaxHeap, MinHeap, PriorityQueue]||
|438|Ugly Number II.java|Medium|Java|[DP, Enumeration, Heap, Math, PriorityQueue]||
|439|Find Median from Data Stream.java|Hard|Java|[Design, Heap, MaxHeap, MinHeap]||
|440|Sliding Window Median.java|Hard|Java|[Design, Heap, MaxHeap, MinHeap, Sliding Window]||
|441|Inorder Successor in BST.java|Medium|Java|[BST, Tree]||
|442|Subtree of Another Tree.java|Easy|Java|[DFS, Divide and Conquer, Tree]||
|443|Two Sum IV - Input is a BST.java|Easy|Java|[Tree]||
|444|Read N Characters Given Read4.java|Easy|Java|[Enumeration, String]||
|445|Design Search Autocomplete System.java|Hard|Java|[Design, Hash Table, MinHeap, PriorityQueue, Trie]||
|446|Walls and Gates.java|Medium|Java|[BFS, DFS]||
|447|Merge Sorted Array.java|Easy|Java|[Array, Two Pointers]||
|448|Integer to English Words.java|Hard|Java|[Enumeration, Math, String]||
|449|Alien Dictionary.java|Hard|Java|[BFS, Backtracking, DFS, Graph, Topological Sort]||
|450|Valid Palindrome II.java|Easy|Java|[String]||
|451|Convert Binary Search Tree to Sorted Doubly Linked List.java|Medium|Java|[BST, DFS, Divide and Conquer, Linked List, Tree]||
|452|Word Ladder II.java|Hard|Java|[Array, BFS, Backtracking, DFS, Hash Table, String]||
|453|Moving Average from Data Stream.java|Easy|Java|[Design, Queue, Sliding Window]||
|454|Move Zeroes.java|Easy|Java|[Array, Two Pointers]||
|455|Flood Fill.java|Easy|Java|[DFS]||
|456|Diameter of Binary Tree.java|Easy|Java|[Tree]||
|457|Backspace String Compare.java|Easy|Java|[Stack, Two Pointers]||
|458|Text Justification.java|Hard|Java|[Enumeration, String]||
|459|Read N Characters Given Read4 II - Call multiple times.java|Hard|Java|[Enumeration, String]||
|460|Frog Jump.java|Hard|Java|[DP, Hash Table]||
|461|Longest Substring with At Most Two Distinct Characters.java|Hard|Java|[Hash Table, Sliding Window, String, Two Pointers]||
|462|Shortest Distance from All Buildings.java|Hard|Java|[BFS]||
|463|String to Integer (atoi).java|Medium|Java|[Math, String]||
|464|Roman to Integer.java|Easy|Java|[Math, String]||
|465|Intersection of Two Arrays.java|Easy|Java|[Binary Search, Hash Table, Sort, Two Pointers]||
|466|Strobogrammatic Number.java|Easy|Java|[Enumeration, Hash Table, Math]||
|467|Valid Parentheses.java|Easy|Java|[Stack, String]||
|468|First Unique Character in a String.java|Easy|Java|[Hash Table, String]||
|469|Add Binary.java|Easy|Java|[Math, String, Two Pointers]||
|470|Clone Graph.java|Medium|Java|[BFS, DFS, Graph]||
|471|Sliding Window Maximum.java|Hard|Java|[Deque, Heap, Sliding Window]||
|472|Median of Two Sorted Arrays.java|Hard|Java|[Array, Binary Search, DFS, Divide and Conquer]||
|473|Permutations.java|Medium|Java|[Backtracking, DFS, Permutation]||
|474|One Edit Distance.java|Medium|Java|[String]||
|475|4Sum.java|Medium|Java|[Hash Table]||
|476|Bus Routes.java|Hard|Java|[BFS]||
|477|Sliding Puzzle.java|Hard|Java|[BFS, Graph]||
|478|Isomorphic Strings.java|Easy|Java|[Hash Table]||
|479|Cracking the Safe.java|Hard|Java|[DFS, Greedy, Math]||
|480|Redundant Connection.java|Medium|Java|[BFS, DFS, Graph, Tree, Union Find]||
|481|Graph Valid Tree.java|Medium|Java|[BFS, DFS, Graph, Union Find]||
|482|Redundant Connection II.java|Hard|Java|[DFS, Graph, Tree, Union Find]||
|483|The Maze.java|Medium|Java|[BFS, DFS]||
|484|The Maze II.java|Medium|Java|[BFS, DFS, PriorityQueue]||
|485|The Maze III.java|Hard|Java|[BFS, DFS, PriorityQueue]||
|486|Predict the Winner.java|Medium|Java|[DP, MiniMax]||
|487|Next Greater Element I.java|Easy|Java|[Hash Table, Stack]||
|488|Group Shifted Strings.java|Medium|Java|[Hash Table, String]||
|489|Delete Digits.java|Medium|Java|[Greedy, Priority Queue]||
|490|Flatten 2D Vector.java|Medium|Java|[Design]||
|491|The Spiral Matrix II.java|Medium|Java|[Array]||
|492|Regular Expression Matching.java|Hard|Java|[Backtracking, DP, Double Sequence DP, Sequence DP, String]||
|493|Wildcard Matching.java|Hard|Java|[Backtracking, DP, Double Sequence DP, Greedy, Sequence DP, String]||
|494|Robot Room Cleaner.java|Hard|Java|[Backtracking, DFS]||
|495|Maximum Vacation Days.java|Hard|Java|[DP]||