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