GitHub - seeshan/LintCode: Java Solutions to problems on LintCode/LeetCode

0 Anagrams.java Medium Java [] 1 Binary Representation.java Hard Java [] 2 Binary Tree Level Order Traversal II.java Medium Java [] 3 Binary Tree Level Order Traversal.java Medium Java [] 4 Binary Tree Longest Consecutive Sequence.java Medium Java [] 5 Binary Tree Maximum Path Sum II.java Medium Java [] 6 Binary Tree Right Side View.java Medium Java [] 7 Binary Tree Serialization.java Medium Java [] 8 Binary Tree Zigzag Level Order Traversal.java Medium Java [] 9 ColorGrid.java Medium Java [] 10 Combination Sum II.java Medium Java [] 11 Combination Sum.java Medium Java [] 12 Combinations.java Medium Java [] 13 Construct Binary Tree from Inorder and Postorder Traversal.java Medium Java [] 14 Container With Most Water.java Medium Java [] 15 Convert Binary Search Tree to Doubly Linked List.java Medium Java [BST] 16 Convert Expression to Polish Notation.java Hard Java [] 17 Convert Expression to Reverse Polish Notation.java Hard Java [] 18 Copy List with Random Pointer.java Medium Java [] 19 Count and Say.java Easy Java [] 20 Count of Smaller Number before itself.java Hard Java [] 21 Count of Smaller Number.java Medium Java [] 22 Count Primes.java Easy Java [] 23 Delete Digits.java Medium Java [] 24 Delete Node in the Middle of Singly Linked List.java Easy Java [] 25 Encode and Decode Strings.java Medium Java [] 26 ExcelSheetColumnNumber .java Easy Java [] 27 Expression Evaluation.java Hard Java [] 28 Expression Tree Build.java Hard Java [] 29 Fast Power.java Medium Java [] 30 Fibonacci.java Easy Java [] 31 Find the Connected Component in the Undirected Graph.java Medium Java [] 32 Find the Weak Connected Component in the Directed Graph.java Medium Java [] 33 First Missing Positive.java N/A Java [] 34 Flatten 2D Vector.java Medium Java [] 35 Flip Game II.java Medium Java [] 36 Flip Game.java Easy Java [] 37 Fraction to Recurring Decimal.java Medium Java [] 38 Gas Station.java N/A Java [] 39 Generate Parentheses.java Medium Java [] 40 Gray Code.java Medium Java [] 41 Group Anagrams.java Medium Java [] 42 Group Shifted Strings.java Easy Java [] 43 H-Index II.java Medium Java [] 44 H-Index.java Medium Java [] 45 Hamming Distance.java Easy Java [] 46 Happy Number.java Easy Java [] 47 Hash Function.java Easy Java [] 48 HashHeap.java Hard Java [] 49 HashWithArray.java Easy Java [] 50 HashWithCustomizedClass(LinkedList).java Medium Java [] 51 Heapify.java Medium Java [] 52 Heaters.java Easy Java [] 53 Identical Binary Tree.java Easy Java [] 54 Implement Queue by Two Stacks.java N/A Java [] 55 Implement Stack by Two Queues.java Easy Java [] 56 Implement Stack using Queues.java Easy Java [] 57 Implement Stack.java Easy Java [] 58 Implement strStr().java N/A Java [] 59 Implement Trie (Prefix Tree).java Medium Java [] 60 IndexMatch.java Easy Java [] 61 Inorder Successor in Binary Search Tree.java Medium Java [BST] 62 Insert Interval.java Easy Java [] 63 Insert Node in a Binary Search Tree .java Easy Java [BST] 64 Insertion Sort List.java N/A Java [] 65 Integer to English Words.java N/A Java [] 66 Interleaving Positive and Negative Numbers.java N/A Java [] 67 Intersection of Two Arrays.java Easy Java [] 68 Intersection of Two Linked Lists.java Easy Java [] 69 Interval Minimum Number.java Medium Java [] 70 Interval Sum II.java Hard Java [] 71 Interval Sum.java Medium Java [] 72 Invert Binary Tree.java Easy Java [] 73 Isomorphic Strings.java Easy Java [] 74 Jump Game II.java Hard Java [] 75 Kth Largest Element.java Medium Java [] 76 Kth Smallest Element in a BST.java Medium Java [BST] 77 Kth Smallest Sum In Two Sorted Arrays.java Hard Java [] 78 Largest Number.java N/A Java [] 79 Last Position of Target.java N/A Java [] 80 Length of Last Word.java N/A Java [] 81 Longest Common Prefix.java Medium Java [] 82 Longest Common Substring.java N/A Java [] 83 Longest Consecutive Sequence.java N/A Java [] 84 Longest Increasing Continuous subsequence II.java N/A Java [] 85 Longest Increasing Continuous subsequence.java Easy Java [] 86 Longest Palindromic Substring.java Medium Java [] 87 Longest Univalue Path.java Easy Java [] 88 Longest Word in Dictionary.java Easy Java [] 89 Longest Words.java N/A Java [] 90 Lowest Common Ancestor II.java Easy Java [] 91 Lowest Common Ancestor of a Binary Search Tree.java Medium Java [] 92 Lowest Common Ancestor.java Easy Java [] 93 LRU Cache.java Hard Java [] 94 Majority Number II.java Medium Java [] 95 Majority Number III.java Medium Java [] 96 Matrix Zigzag Traversal.java Easy Java [] 97 Max Area of Island.java Easy Java [] 98 Maximum Depth of Binary Tree.java Easy Java [] 99 Maximum Subarray III.java N/A Java [] 100 Maximum Subarray.java Easy Java [] 101 Maximum SubarrayII.java N/A Java [] 102 MaximumSubarrayII.java N/A Java [] 103 Median of two Sorted Arrays.java Hard Java [] 104 Median.java N/A Java [] 105 Merge Intervals.java Easy Java [] 106 Merge k Sorted Arrays.java Medium Java [] 107 Merge k Sorted Lists.java Medium Java [] 108 Merge Sorted Array II.java N/A Java [] 109 Merge Sorted Array.java Easy Java [] 110 Merge Two Binary Trees.java Easy Java [] 111 Merge Two Sorted Lists.java Easy Java [] 112 Middle of Linked List.java N/A Java [] 113 Minimum Absolute Difference in BST.java Easy Java [BST] 114 Minimum Height Trees.java N/A Java [] 115 Minimum Subarray.java N/A Java [] 116 MinimumDepthOfBinaryTree.java Easy Java [] 117 Missing Ranges.java N/A Java [] 118 Multiply Strings.java Medium Java [] 119 Next Permutation.java Medium Java [] 120 NQueens.java N/A Java [] 121 NQueensII.java N/A Java [] 122 Nth to Last Node in List.java N/A Java [] 123 Number Triangles.java N/A Java [] 124 O(1) Check Power of 2.java N/A Java [] 125 One Edit Distance.java Medium Java [] 126 Paint Fence.java N/A Java [] 127 Palindrome Linked List.java N/A Java [] 128 Palindrome Partitioning.java N/A Java [] 129 Palindrome Permutation II.java Medium Java [] 130 Palindrome Permutation.java Easy Java [] 131 Partition Array by Odd and Even.java N/A Java [] 132 Partition Array.java N/A Java [] 133 Partition List.java N/A Java [] 134 Pascal's Triangle II.java Easy Java [] 135 Peeking Iterator.java Medium Java [BST] 136 Permutation Index.java Easy Java [] 137 Permutation Sequence.java Medium Java [] 138 Permutations II.java Medium Java [] 139 Permutations.java Medium Java [] 140 Populating Next Right Pointers in Each Node II.java Hard Java [] 141 Product of Array Exclude Itself.java N/A Java [] 142 QuickSort.java Easy Java [] 143 Recover Rotated Sorted Array.java N/A Java [] 144 Rehashing.java Medium Java [] 145 Remove Duplicates from Sorted Array.java Easy Java [] 146 Remove Duplicates from Sorted List II.java N/A Java [] 147 Remove Duplicates from Sorted List.java Easy Java [] 148 Remove Duplicates from Unsorted List.java N/A Java [] 149 Remove Invalid Parentheses.java Hard Java [] 150 Remove Linked List Elements.java N/A Java [] 151 Remove Node in Binary Search Tree.java Hard Java [BST] 152 Reorder List.java N/A Java [] 153 Reshape the Matrix.java Easy Java [] 154 Restore IP Addresses.java N/A Java [] 155 Reverse Linked List II .java N/A Java [] 156 Reverse Linked List.java Easy Java [] 157 Reverse String.java Easy Java [] 158 Reverse Words in a String II.java Medium Java [] 159 Reverse Words in a String.java Medium Java [] 160 Roman to Integer.java Easy Java [] 161 Rotate Image.java Medium Java [] 162 Rotate List.java N/A Java [] 163 Rotate String.java N/A Java [] 164 Russian Doll Envelopes.java N/A Java [] 165 Search a 2D Matrix II.java N/A Java [] 166 Search a 2D Matrix.java N/A Java [] 167 Search for a Range.java N/A Java [] 168 Search Insert Position.java N/A Java [] 169 Search Range in Binary Search Tree .java Medium Java [BST] 170 Search Rotated in Sorted Array II.java N/A Java [] 171 Search Rotated in Sorted Array.java Hard Java [] 172 Segment Tree Build II.java Medium Java [] 173 Segment Tree Build.java Medium Java [] 174 Segment Tree Modify.java Medium Java [] 175 Segment Tree Query II.java Medium Java [] 176 Segment Tree Query.java Medium Java [] 177 Serilization and Deserialization Of Binary Tree.java N/A Java [] 178 Shortest Word Distance.java Easy Java [] 179 Single Number II.java N/A Java [] 180 Single Number III.java N/A Java [] 181 Single Number.java Easy Java [] 182 Singleton.java N/A Java [] 183 Sliding Window Maximum.java N/A Java [] 184 Sort Color.java N/A Java [] 185 Sort Colors II.java N/A Java [] 186 Sort Letters by Case.java N/A Java [] 187 Sort List.java N/A Java [] 188 Space Replacement.java N/A Java [] 189 Stone Game.java N/A Java [] 190 String Permutation.java Easy Java [] 191 String to Integer(atoi).java Easy Java [] 192 Strobogrammatic Number II.java Medium Java [] 193 Strobogrammatic Number.java Easy Java [] 194 StrStr.java N/A Java [] 195 Subarray Sum Closest.java Medium Java [] 196 Subarray Sum.java Easy Java [] 197 Subset.java Medium Java [] 198 Subsets II.java Medium Java [] 199 Subtree.java Easy Java [] 200 Summary Ranges.java N/A Java [] 201 Symmetric Binary Tree.java Easy Java [] 202 The Smallest Difference.java N/A Java [] 203 Top K Frequent Elements.java Medium Java [] 204 Top K Frequent Words.java Medium Java [] 205 Topological Sorting.java Medium Java [] 206 Total Occurrence of Target.java N/A Java [] 207 Trailing Zeros.java N/A Java [] 208 Tweaked Identical Binary Tree.java Easy Java [] 209 Two Lists Sum.java N/A Java [] 210 Two Strings Are Anagrams.java Easy Java [] 211 Ugly Number II.java N/A Java [] 212 Ugly Number.java Medium Java [] 213 Unique Binary Search Tree II.java Medium Java [BST] 214 Unique Characters.java N/A Java [] 215 Unique Word Abbreviation.java N/A Java [] 216 Valid Palindrome.java Easy Java [] 217 Valid Parentheses.java Easy Java [] 218 Valid Sudoku.java Easy Java [] 219 Word Break.java Medium Java [] 220 Word Ladder II.java Hard Java [] 221 Word Ladder.java Medium Java [] 222 Word Pattern.java Easy Java [] 223 Zigzag Iterator.java Medium Java [BST] 224 Find Anagram Mappings.java Easy Java [Hash Table] 225 Judge Route Circle.java Easy Java [String] 226 Island Perimeter.java Easy Java [Hash Table] 227 First Unique Character in a String.java Easy Java [Hash Table, String] 228 Power of Three.java Easy Java [Math] 229 Plus One.java Easy Java [Array, Math] 230 Power of Two.java Easy Java [Bit Manipulation, Math] 231 Reverse Vowels of a String.java Easy Java [String, Two Pointers] 232 Guess Number Higher or Lower.java Easy Java [Binary Search] 233 Encode and Decode TinyURL.java Medium Java [Hash Table, Math] 234 Wiggle Sort.java Medium Java [Array, Sort] 235 Queue Reconstruction by Height.java Medium Java [Greedy] 236 2 Sum.java Easy Java [Array, Hash Table] 237 2 Sum II - Input array is sorted.java Medium Java [Array, Binary Search, Two Pointers] 238 2 Sum II.java Medium Java [Array, Binary Search, Two Pointers] 239 Coin Change.java Medium Java [DP] 240 Jump Game.java Medium Java [Array, Greedy] 241 Maximum Product Subarray.java Medium Java [Array, DP] 242 3 Sum Closest.java Medium Java [Array, Two Pointers] 243 Triangle Count.java Medium Java [Array] 244 3 Sum.java Medium Java [Array, Two Pointers] 245 4 Sum.java Medium Java [Hash Table] 246 k Sum.java Hard Java [DP] 247 Longest Continuous Increasing Subsequence.java Easy Java [Array, DP] 248 Longest Increasing Subsequence.java Medium Java [Binary Search, DP, Memoization, Sequence DP] 249 Unique Binary Search Tree.java Medium Java [BST, DP, Tree] 250 Trim a Binary Search Tree.java Easy Java [BST, Tree] 251 Unique Paths II.java Medium Java [Array, DP] 252 Counting Bits.java Medium Java [Bit Manipulation, DP] 253 Bomb Enemy.java Medium Java [DP] 254 Paint House.java Easy Java [DP] 255 Decode Ways.java Review Java [DP, String] 256 House Robber.java Easy Java [DP, Sequence DP] 257 House Robber II.java Medium Java [DP, Sequence DP] 258 Best Time to Buy and Sell Stock I.java Easy Java [Array, DP] 259 Best Time to Buy and Sell Stock II.java Easy Java [Array, Greedy] 260 Best Time to Buy and Sell Stock III .java Hard Java [Array, DP] 261 Best Time to Buy and Sell Stock IV.java Hard Java [DP] 262 Paint House II.java Review Java [DP] 263 3 Sum Smaller.java Medium Java [Array, Two Pointers] 264 Array Partition I.java Easy Java [Array] 265 1-bit and 2-bit Characters.java Easy Java [Array] 266 Non-decreasing Array.java Easy Java [Array] 267 Max Consecutive Ones.java Easy Java [Array] 268 Find All Numbers Disappeared in an Array.java Easy Java [Array] 269 Maximum Average Subarray I.java Easy Java [Array] 270 Largest Number At Least Twice of Others.java Easy Java [Array] 271 Toeplitz Matrix.java Easy Java [Array] 272 Backpack.java Medium Java [DP] 273 Sum of Two Integers.java Easy Java [Bit Manipulation] 274 Swap Bits.java Easy Java [Bit Manipulation] 275 Update Bits.java Medium Java [Bit Manipulation] 276 Maximum XOR of Two Numbers in an Array.java Medium Java [Bit Manipulation, Trie] 277 Perfect Squares.java Medium Java [BFS, DP, Math] 278 Palindrome Partitioning II.java Hard Java [DP] 279 Backpack V.java Medium Java [DP] 280 Backpack VI.java Medium Java [DP] 281 Copy Books.java Hard Java [Binary Search, DP] 282 Valid Perfect Square.java Review Java [Binary Search, Math] 283 Intersection of Two Arrays II.java Easy Java [Binary Search, Hash Table, Sort, Two Pointers] 284 Backpack II.java Medium Java [DP] 285 Backpack III.java Review Java [DP] 286 Longest Palindromic Subsequence.java Medium Java [DP] 287 Scramble String.java Hard Java [DP, Range DP, String] 288 Binary Search Tree Iterator.java Medium Java [BST, Design, Stack, Tree] 289 Flatten Nested List Iterator.java Medium Java [Design, Stack] 290 Best Time to Buy and Sell Stock with Cooldown.java Medium Java [DP] 291 Find Peak Element.java Medium Java [Array, Binary Search] 292 Longest Common Subsequence.java Medium Java [DP, Double Sequence DP] 293 Interleaving String.java Hard Java [DP, String] 294 Letter Combinations of a Phone Number.java Medium Java [Backtracking, String] 295 Edit Distance.java Hard Java [DP, Double Sequence DP, String] 296 Distinct Subsequences.java Hard Java [DP, String] 297 Regular Expression Matching.java Review Java [Backtracking, DP, String] 298 Majority Element.java Easy Java [Array, Bit Manipulation, Divide and Conquer] 299 Wildcard Matching.java Hard Java [Backtracking, DP, Greedy, String] 300 Ones and Zeroes.java Hard Java [DP] 301 Pow(x,n).java Medium Java [Binary Search, Math] 302 Word Break II.java Review Java [Backtracking, DP] 303 Nested List Weight Sum.java Easy Java [DFS] 304 Same Tree.java Easy Java [DFS, Tree] 305 Convert Sorted Array to Binary Search Tree.java Easy Java [DFS, Tree] 306 Binary Tree Maximum Path Sum.java Review Java [DFS, Tree] 307 Construct Binary Tree from Inorder and Preorder Traversal.java Medium Java [Array, DFS, Tree] 308 Path Sum.java Easy Java [DFS, Tree] 309 Add Binary.java Easy Java [Math, String] 310 Add Digits.java Easy Java [Math] 311 Add Two Numbers.java Medium Java [Linked List, Math] 312 Add Two Numbers II.java Medium Java [Linked List] 313 Balanced Binary Tree.java Medium Java [DFS, Tree] 314 Valid Anagram.java Easy Java [Hash Table, Sort] 315 Populating Next Right Pointers in Each Node.java Medium Java [DFS, Tree] 316 Validate Binary Search Tree.java Medium Java [BST, DFS, Tree] 317 Convert Sorted List to Binary Search Tree.java Medium Java [DFS, Linked List] 318 Flatten Binary Tree to Linked List.java Medium Java [Binary Tree, DFS] 319 Binary Tree Paths.java Easy Java [Binary Tree, DFS] 320 Minimum Size Subarray Sum.java Medium Java [Array, Binary Search, Two Pointers] 321 Clone Graph.java Medium Java [BFS, DFS, Graph] 322 Longest Substring Without Repeating Characters.java Medium Java [Hash Table, String, Two Pointers] 323 Minimum Window Substring.java Hard Java [Hash Table, String, Two Pointers] 324 Linked List Cycle.java Easy Java [Linked List, Two Pointers] 325 Remove Nth Node From End of List.java Medium Java [Linked List, Two Pointers] 326 Longest Substring with At Most K Distinct Characters.java Medium Java [Hash Table, String] 327 Linked List Cycle II.java Medium Java [Linked List, Two Pointers] 328 Kth Smallest Number in Sorted Matrix.java Medium Java [Binary Search, Heap] 329 Find Minimum in Rotated Sorted Array.java Medium Java [Array, Binary Search] 330 Find Minimum in Rotated Sorted Array II.java Hard Java [Array, Binary Search] 331 Connecting Graph.java Medium Java [Union Find] 332 Connecting Graph II.java Medium Java [Union Find] 333 Connecting Graph III.java Medium Java [Union Find] 334 Number of Islands.java Medium Java [BFS, DFS, Union Find] 335 Number of Islands II.java Hard Java [Union Find] 336 Graph Valid Tree.java Medium Java [BFS, DFS, Graph, Union Find] 337 Surrounded Regions.java Review Java [BFS, DFS, Union Find] 338 Implement Trie.java Medium Java [Design, Trie] 339 Add and Search Word.java Medium Java [Backtracking, Design, Trie] 340 Word Search II.java Hard Java [Backtracking, DFS, Trie] 341 Word Search.java Medium Java [Array, Backtracking] 342 Word Squares.java Hard Java [Backtracking, Trie] 343 Trapping Rain Water.java Hard Java [Array, Stack, Two Pointers] 344 Trapping Rain Water II.java Hard Java [BFS, Heap] 345 Data Stream Median.java Hard Java [Design, Heap] 346 Sliding Window Median.java Hard Java [Design, Heap] 347 Min Stack.java Easy Java [Design, Stack] 348 Implement Queue using Stacks.java Easy Java [Design, Stack] 349 Expression Expand.java Medium Java [DFS, Divide and Conquer, Stack] 350 Largest Rectangle in Histogram.java Hard Java [Array, Monotonous Stack, Stack] 351 Max Tree.java Medium Java [Stack, Tree] 352 Reverse Integer.java Easy Java [Math] 353 Swap Nodes in Pairs.java Medium Java [Linked List] 354 Find Peak Element II.java Hard Java [Binary Search, DFS, Divide and Conquer] 355 Sqrt(x).java Easy Java [Binary Search, Math] 356 First Bad Version.java Easy Java [Binary Search] 357 Wood Cut.java Medium Java [Binary Search] 358 Find the Duplicate Number.java Medium Java [Array, Binary Search, Two Pointers] 359 Palindrome Pairs.java Hard Java [Hash Table, String, Trie] 360 Game of Life.java Medium Java [Array] 361 Maximum Average Subarray II.java Review Java [Array, Binary Search] 362 Meeting Rooms.java Easy Java [Sort, Sweep Line] 363 Number of Airplane in the sky.java Medium Java [Array, Interval, Sort, Sweep Line] 364 Meeting Rooms II.java Medium Java [Greedy, Heap, Sort, Sweep Line] 365 Building Outline.java Review Java [Binary Indexed Tree, Divide and Conquer, Heap, Segment Tree, Sweep Line] 366 Unique Path.java Medium Java [Array, Coordinate DP, DP] 367 Maximal Rectangle.java Hard Java [Array, DP, Hash Table, Stack] 368 Maximal Square.java Medium Java [Coordinate DP, DP] 369 Minimum Path Sum.java Medium Java [Array, Coordinate DP, DP] 370 House Robber III.java Hard Java [DFS, DP, Status DP, Tree] 371 Longest Increasing Path in a Matrix.java Hard Java [DFS, DP, Memoization, Topological Sort] 372 Coins in a Line.java Medium Java [DP, Game Theory, Greedy] 373 Coins in a Line II.java Medium Java [Array, DP, Game Theory, Memoization, MiniMax] 374 Binary Tree Inorder Traversal.java Easy Java [Hash Table, Stack, Tree] 375 Path Sum II.java Easy Java [DFS, Tree] 376 Binary Tree Postorder Traversal.java Medium Java [Stack, Tree, Two Stacks] 377 Change to Anagram.java Easy Java [String] 378 Classical Binary Search.java Easy Java [Binary Search] 379 Climbing Stairs.java Easy Java [DP, Memoization, Sequence DP] 380 Coins in a Line III.java Hard Java [Array, DP, Game Theory, Interval DP, Memoization] 381 Closest Binary Search Tree Value.java Easy Java [BST, Binary Search, Tree] 382 Compare Version Numbers.java Medium Java [String] 383 Count Complete Tree Nodes.java Medium Java [Binary Search, Tree] 384 Course Schedule.java Medium Java [BFS, DFS, Graph, Topological Sort] 385 Course Schedule II.java Medium Java [BFS, DFS, Graph, Topological Sort] 386 Alien Dictionary.java Hard Java [BFS, Backtracking, DFS, Graph, Topological Sort] 387 Binary Tree Preorder Traversal.java Easy Java [BFS, DFS, Stack, Tree] 388 Closest Number in Sorted Array.java Easy Java [Binary Search] 389 Complete Binary Tree.java Easy Java [BFS, DFS, Tree] 390 Compare Strings.java Easy Java [String] 391 Contains Duplicate.java Easy Java [Array, Hash Table] 392 Contains Duplicate II.java Easy Java [Array, Hash Table] 393 Contains Duplicate III.java Medium Java [BST] 394 Burst Balloons.java Hard Java [DP, Divide and Conquer, Memoization, Range DP] 395 Nim Game.java Easy Java [Brainteaser, DP, Game Theory] 396 Convert Integer A to Integer B.java Easy Java [Bit Manipulation] 397 Cosine Similarity.java Easy Java [Basic Implementation] 398 Count 1 in Binary.java Easy Java [Bit Manipulation]