### Top Interview Questions | \# | Problems | Difficulty | Solution | |----|----------|-----------|------| | 001 | [Two_Sum](https://leetcode.com/problems/two-sum/) | Easy | [Java](./code/lc1.java) | 002 | [Add Two Numbers](https://leetcode.com/problems/add-two-numbers/) |Medium| [Java](./code/lc2.java) | 003 | [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/) | Medium | [Java](./code/lc3.java) | 004 | [Median of Two Sorted Arrays](https://leetcode.com/problems/median-of-two-sorted-arrays) | Hard | [Java](./code/lc4.java) | 005 | [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/) |Medium|[Java](./code/lc5.java) | 007 | [Reverse Integer](https://leetcode.com/problems/reverse-integer/) |Easy|[Java](./code/lc7.java) | 008 | [String to Integer (atoi)](https://leetcode.com/problems/string-to-integer-atoi/) |Medium|[Java](./code/lc8.java) | 010 | [Regular Expression Matching](https://leetcode.com/problems/regular-expression-matching/) | Hard | [Java](./code/lc10.java) | 011 | [Container With Most Water](https://leetcode.com/problems/container-with-most-water/) |Medium| [Java](./code/lc11.java) | 013 | [Roman to Integer](https://leetcode.com/problems/roman-to-integer) |Easy| [Java](./code/lc13.java) | 014 | [Longest Common Prefix](https://leetcode.com/problems/longest-common-prefix) |Easy| [Java](./code/lc14.java) | 015 | [3Sum](https://leetcode.com/problems/3sum/) | Medium | [Java](./code/lc15.java) | 017 | [Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number/) | Medium | [Java](./code/lc17.java) | 019 | [Remove Nth Node From End of List](https://leetcode.com/problems/remove-nth-node-from-end-of-list/) | Easy | [Java](./code/lc19.java) | 020 | [Valid Parentheses](https://leetcode.com/problems/valid-parentheses/) | Easy | [Java](./code/lc20.java) | 021 | [Merge Two Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists/) | Easy | [Java](./code/lc21.java) | 022 | [Generate Parentheses](https://leetcode.com/problems/generate-parentheses/) |Medium| [Java](./code/lc22.java) | 023 | [Merge k Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/) | Hard | [Java](./code/lc23.java) | 026 | [Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array) | Easy | [Java](./code/lc26.java) | 028 | [Implement strStr()](https://leetcode.com/problems/implement-strstr) | Easy | [Java](./code/lc28.java) | 029 | [Divide Two Integers](https://leetcode.com/problems/divide-two-integers) | Medium | [Java](./code/lc29.java) | 033 | [Search in Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array/) |Medium| [Java](./code/lc33.java) | 034 | [Search for a Range](https://leetcode.com/problems/search-for-a-range/) |Medium| [Java](./code/lc34.java) | 035 | [Search Insert Position](https://leetcode.com/problems/search-insert-position/) |Medium| [Java](./code/lc35.java) | 036 | [Valid Sudoku]() | Medium | [Java](./code/lc36.java) | 038 | [Count and Say]() | Easy | [Java](./code/lc38.java) | 041 | [First Missing Positive]() | Hard | [Java](./code/lc41.java) | 042 | [Trapping Rain Water](https://leetcode.com/problems/trapping-rain-water/) | Hard | [Java](./code/lc42.java) | 044 | [Wildcard Matching]() | Hard | [Java](./code/lc44.java) | 046 | [Permutations](https://leetcode.com/problems/permutations/) |Medium| [Java](./code/lc46.java) | 048 | [Rotate Image](https://leetcode.com/problems/rotate-image/) |Medium| [Java](./code/lc48.java) | 049 | [Group Anagrams](https://leetcode.com/problems/anagrams/)|Medium| [Java](./code/lc49.java) | 050 | [Pow(x, n)]() | Medium | [Java](./code/lc50.java) | 053 | [Maximum Subarray](https://leetcode.com/problems/maximum-subarray/) |Medium| [Java](./code/lc53.java) | 054 | [Spiral Matrix]() | Medium | [Java](./code/lc54.java) | 055 | [Jump Game](https://leetcode.com/problems/jump-game/) |Medium| [Java](./code/lc55.java) | 056 | [Merge Intervals](https://leetcode.com/problems/merge-intervals/) |Medium| [Java](./code/lc56.java) | 062 | [Unique Paths](https://leetcode.com/problems/unique-paths/) |Medium| [Java](./code/lc62.java) | 066 | [Plus One]() | Easy | [Java](./code/lc66.java) | 069 | [Sqrt(x)]() | Easy | [Java](./code/lc69.java) | 070 | [Climbing Stairs](https://leetcode.com/problems/climbing-stairs/) | Easy | [Java](./code/lc70.java) | 073 | [Set Matrix Zeroes]() | Medium | [Java](./code/lc73.java) | 075 | [Sort Colors](https://leetcode.com/problems/sort-colors/)|Medium| [Java](./code/lc75.java) | 076 | [Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring) | Hard| [Java](./code/lc76.java) | 078 | [Subsets](https://leetcode.com/problems/subsets/) |Medium| [Java](./code/lc78.java) | 079 | [Word Search](https://leetcode.com/problems/word-search/)|Medium| [Java](./code/lc79.java) | 084 | [Largest Rectangle in Histogram](https://leetcode.com/problems/largest-rectangle-in-histogram) | Hard | [Java](./code/lc84.java) | 088 | [Merge Sorted Array]() | Easy | [Java](./code/lc88.java) | 091 | [Decode Ways]() | Medium | [Java](./code/lc91.java) | 094 | [Binary Tree Inorder Traversal](https://leetcode.com/problems/binary-tree-inorder-traversal/) |Medium| [Java](./code/lc94.java) | 098 | [Validate Binary Search Tree](https://leetcode.com/problems/validate-binary-search-tree/) |Medium| [Java](./code/lc98.java) | 101 | [Symmetric Tree](https://leetcode.com/problems/symmetric-tree/) | Easy | [Java](./code/lc101.java) | 102 | [Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/) | Easy | [Java](./code/lc102.java) | 103 | [Binary Tree Zigzag Level Order Traversal]() | Medium | [Java](./code/lc103.java) | 104 | [Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree/) | Easy | [Java](./code/lc104.java) | 105 | [Construct Binary Tree from Preorder and Inorder Traversal](https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/) |Medium| [Java](./code/lc105.java) | 108 | [Convert Sorted Array to Binary Search Tree]() | Easy | [Java](./code/lc108.java) | 116 | [Populating Next Right Pointers in Each Node ]() | Medium | [Java](./code/lc116.java) | 118 | [Pascal's Triangle]() | Easy | [Java](./code/lc118.java) | 121 | [Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) | Easy | [Java](./code/lc121.java) | 122 | [Best Time to Buy and Sell Stock II]() | Easy | [Java](./code/lc122].java) | 124 | [Binary Tree Maximum Path Sum](https://leetcode.com/problems/binary-tree-maximum-path-sum/) | Hard | [Java](./code/lc124.java) | 125 | [Valid Palindrome]() | Easy | [Java](./code/lc125.java) | 127 | [Word Ladder]() | Medium | [Java](./code/lc127.java) | 128 | [Longest Consecutive Sequence](https://leetcode.com/problems/longest-consecutive-sequence/) | Hard | [Java](./code/lc128.java) | 130 | [Surrounded Regions]() | Medium | [Java](./code/lc130.java) | 131 | [Palindrome Partitioning]() | Medium | [Java](./code/lc131.java) | 134 | [Gas Station]() | Medium | [Java](./code/lc134.java) | 136 | [Single Number](https://leetcode.com/problems/single-number) | Easy | [Java](./code/lc136.java) | 138 | [Copy List with Random Pointer]() | Medium | [Java](./code/lc138.java) | 139 | [Word Break](https://leetcode.com/problems/word-break/) |Medium| [Java](./code/lc139.java) | 140 | [Word Break II]() | Hard | [Java](./code/lc140.java) | 141 | [Linked List Cycle](https://leetcode.com/problems/linked-list-cycle/) | Easy | [Java](./code/lc141.java) | 146 | [LRU Cache](https://leetcode.com/problems/lru-cache/) | Hard | [Java](./code/lc146.java) | 148 | [Sort List](https://leetcode.com/problems/sort-list/) |Medium| [Java](./code/lc148.java) | 149 | [Max Points on a Line]() | Hard | [Java](./code/lc149.java) | 150 | [Evaluate Reverse Polish Notation]() | Medium | [Java](./code/lc150.java) | 152 | [Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray/) |Medium| [Java](./code/lc152.java) | 155 | [Min Stack](https://leetcode.com/problems/min-stack/) | Easy | [Java](./code/lc155.java) | 160 | [Intersection of Two Linked Lists](https://leetcode.com/problems/intersection-of-two-linked-lists/) | Easy | [Java](./code/lc160.java) | 162 | [Find Peak Element]() | Medium | [Java](./code/lc162.java) | 163 | [Missing Ranges](https://leetcode.com/problems/missing-ranges) | Medium | [没权限] | 166 | [Fraction to Recurring Decimal]() | Medium | [Java](./code/lc166.java) | 169 | [Majority Element](https://leetcode.com/problems/majority-element/) | Easy | [Java](./code/lc169.java) | 171 | [Excel Sheet Column Number]() | Easy | [Java](./code/lc171.java) | 172 | [Factorial Trailing Zeroes]() | Easy | [Java](./code/lc172.java) | 179 | [Largest Number]() | Medium | [Java](./code/lc179.java) | 189 | [Rotate Array]() | Easy | [Java](./code/lc189.java) | 190 | [Reverse Bits]() | Easy | [Java](./code/lc190.java) | 191 | [Number of 1 Bits]() | Easy | [Java](./code/lc191.java) | 198 | [House Robber](https://leetcode.com/problems/house-robber/) | Easy | [Java](./code/lc198.java) | 200 | [Number of Islands](https://leetcode.com/problems/number-of-islands/) |Medium| [Java](./code/lc200.java) | 202 | [Happy Number]() | Easy | [Java](./code/lc202.java) | 204 | [Count Primes]() | Easy | [Java](./code/lc204.java) | 206 | [Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/) | Easy |[Java](./code/lc206.java) | 207 | [Course Schedule](https://leetcode.com/problems/course-schedule/) |Medium|[Java](./code/lc207.java) | 208 | [Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/) |Medium| [Java](./code/lc208.java) | 210 | [Course Schedule II]() | Medium | [Java](./code/lc210.java) | 212 | [Word Search II]() | Hard | [Java](./code/lc212.java) | 215 | [Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/) |Medium| [Java](./code/lc215.java) | 217 | [Contains Duplicate]() | Easy | [Java](./code/lc217.java) | 218 | [The Skyline Problem]() | Hard | [Java](./code/lc218.java) | 227 | [Basic Calculator II]() | Medium | [Java](./code/lc227.java) | 230 | [Kth Smallest Element in a BST]() | Medium | [Java](./code/lc230.java) | 234 | [Palindrome Linked List](https://leetcode.com/problems/palindrome-linked-list/) | Easy | [Java](./code/lc234.java) | 236 | [Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/) |Medium| [Java](./code/lc236.java) | 237 | [Delete Node in a Linked List]() | Easy | [Java](./code/lc237.java) | 238 | [Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/) |Medium| [Java](./code/lc238.java) | 239 | [Sliding Window Maximum](https://leetcode.com/problems/sliding-window-maximum/) | Hard | [Java](./code/lc239.java) | 240 | [Search a 2D Matrix II](https://leetcode.com/problems/search-a-2d-matrix-ii/) |Medium| [Java](./code/lc240.java) | 242 | [Valid Anagram]() | Easy | [Java](./code/lc242.java) | 251 | [Flatten 2D Vector](https://leetcode.com/problems/flatten-2d-vector) | Medium | [没权限] | 253 | [Meeting Rooms II](https://leetcode.com/problems/meeting-rooms-ii) | Medium | [没权限] | 268 | [Missing Number]() | Easy | [Java](./code/lc268.java) | 269 | [Alien Dictionary]() | Hard |[没权限] | 277 | [Find the Celebrity]() | Medium | [没权限] | 279 | [Perfect Squares](https://leetcode.com/problems/perfect-squares/) |Medium| [Java](./code/lc279.java) | 283 | [Move Zeroes](https://leetcode.com/problems/move-zeroes/)| Easy | [Java](./code/lc283.java) | 285 | [Inorder Successor in BST](https://leetcode.com/problems/inorder-successor-in-bst) | Medium | [没权限] | 287 | [Find the Duplicate Number](https://leetcode.com/problems/find-the-duplicate-number/) | Hard | [Java](./code/lc287.java) | 295 | [Find Median from Data Stream]() | Hard | [Java](./code/lc295.java) | 297 | [Serialize and Deserialize Binary Tree](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/) | Hard | [Java](./code/lc297.java) | 300 | [Longest Increasing Subsequence](https://leetcode.com/problems/longest-increasing-subsequence/) |Medium| [Java](./code/lc300.java) | 308 | [Range Sum Query 2D - Mutable](https://leetcode.com/problems/range-sum-query-2d-mutable) | Medium | [没权限] | 315 | [Count of Smaller Numbers After Self]() | Hard | [Java](./code/lc315.java) | 322 | [Coin Change](https://leetcode.com/problems/coin-change/)|Medium| [Java](./code/lc322.java) | 324 | [Wiggle Sort II]() | Medium | [Java](./code/lc324.java) | 326 | [Power of Three]() | Easy | [Java](./code/lc326.java) | 328 | [Odd Even Linked List]() | Medium | [Java](./code/lc328.java) | 329 | [Longest Increasing Path in a Matrix]() | Hard | [Java](./code/lc329.java) | 334 | [Increasing Triplet Subsequence]() | Medium | [Java](./code/lc334.java) | 340 | [Longest Substring with At Most K Distinct Characters](https://leetcode.com/problems/longest-substring-with-at-most-k-distinct-characters) | Hard | [Java](./code/lc340.java) | 341 | [Flatten Nested List Iterator]() | Medium | [Java](./code/lc341.java) | 344 | [Reverse String]() | Easy | [Java](./code/lc344.java) | 347 | [Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/) |Medium| [Java](./code/lc347.java) | 348 | [Design Tic-Tac-Toe](https://leetcode.com/problems/design-tic-tac-toe) | Medium | [没权限] | 350 | [Intersection of Two Arrays II]() | Easy | [Java](./code/lc350.java) | 371 | [Sum of Two Integers]() | Easy | [Java](./code/lc371.java) | 378 | [Kth Smallest Element in a Sorted Matrix]() | Medium | [Java](./code/lc378.java) | 380 | [Insert Delete GetRandom O(1)]() | Medium | [Java](./code/lc380.java) | 384 | [Shuffle an Array]() | Medium | [Java](./code/lc384.java) | 387 | [First Unique Character in a String]() | Easy | [Java](./code/lc387.java) | 395 | [Longest Substring with At Least K Repeating Characters]() | Medium | [Java](./code/lc395.java) | 412 | [Fizz Buzz](https://leetcode.com/problems/fizz-buzz) | Easy | [Java](./code/lc412.java) | 454 | [4Sum II](https://leetcode.com/problems/4sum-ii) | Medium | [Java](./code/lc454.java)