LeetCode problems
I also have the "Daily Coding Problem" repository with more questions.
Use the JVM flag -enableassertions
or -ea
to run Java files. The VSCode config in this repository already includes this flag when running files through F5 key or run button.
Java 11+ -> java -ea File.java
Java < 11 -> javac File.java && java -ea File
Some coding question topics:
- Two Pointers
- Fast & Slow Pointers
- Cyclic Sort (consists of using the value as its own index to sort the array)
- Find all Missing Numbers
- Find all Duplicate Numbers
- Find the Smallest Missing Positive Number
- Find the First K Missing Positive Numbers
- Sliding Window
- Merge Intervals
- In-place Reversal of a LinkedList
- Doubly-Linked List
- Stacks
- Monotonic Stack
- Monotonic Queue
- Hash Maps
- Tree Breadth-First Search
- Tree Depth First Search
- Graphs
- Islands (Matrix Traversal)
- Two Heaps
- Design
- Subsets (permutations or combinations)
- String Permutations by Changing Case
- Unique Generalized Abbreviations
- Modified Binary Search
- Ceiling of a number
- Bitonic Array Maximum
- Merge Sort
- Quickselect
- Bit Manipulation
- Two Single Numbers
- Flip and Invert an Image
- Bitmask
- Top 'K' Elements
- K-way Merge
- Greedy Algorithms
- 0/1 Knapsack (Dynamic Programming)
- Equal Subset Sum Partition
- Minimum Subset Sum Difference
- Rod Cutting
- Coin Change
- Backtracking
- Fibonacci Numbers
- Staircase
- House Thief
- Trie
- Topological Sort
- Palindromic Subsequence
- Longest Palindromic Subsequence
- Minimum Deletions in a String to make it a Palindrome
- Longest Common Substring
- Maximum Sum Increasing Subsequence
- Edit Distance
- Suffix Array
- Union Find
- Ordered Set
- Longest Continuous Subarray
- Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit
- Prefix Sum
- Find the Middle Index in Array
- Maximum Size Subarray Sum Equals K
- Subarray Sum Equals K
- Rolling Hash
- Data Stream
- Game Theory
- Number Theory
- Geometry
- Segment Tree
- Binary Indexed Tree
- Concurrency
- Probability and Statistics
- Bucket Sort
- Minimum Spanning Tree (Kruskal Algorithm)
- Strongly Connected Component
- Eulerian Circuit
- Radix Sort
String & Tree & Depth-First Search & Breadth-First Search & Design & Binary Tree
HARD https://leetcode.com/problems/serialize-and-deserialize-binary-tree/
String & Design
MEDIUM https://leetfree.com/problems/encode-and-decode-strings
https://docs.google.com/document/d/1y9n2jzpYIeEjF-1bxq2V81_0ZioqLGV22PKLxwqD4Kg/edit
EASY https://leetfree.com/problems/design-compressed-string-iterator
https://docs.google.com/document/d/1jwyDpqCi3ijegZEHsvwvSA2wWzLknlhm4Tukxu4C83o/edit
String & Matching
EASY https://leetfree.com/problems/valid-word-abbreviation
https://www.lintcode.com/problem/637/description
https://docs.google.com/document/d/1WnDy1rZC37ftH6gZVdlBUDc5G-avLGezxxRQ4ZQfBGE/edit
String & Matching & Join Ranges
MEDIUM https://leetfree.com/problems/add-bold-tag-in-string
https://docs.google.com/document/d/1BqlWdCYajS5cN1qHszuftx7ltCua9i98lRWt_k1d69A/edit
String & Palindrome
EASY https://leetfree.com/problems/palindrome-permutation
https://docs.google.com/document/d/1F3WCxkR8V7a4W5whUwktMMQGnNAEJdrutdrGRW6y_aU/edit
String & Two Pointers
MEDIUM https://leetfree.com/problems/output-contest-matches
https://docs.google.com/document/d/1bWcXT3AP2KddIPTd0gHTKEB3Jjjas1mZYRK195Oze98/edit
String & Bit Manipulation
MEDIUM https://leetfree.com/problems/generalized-abbreviation
https://www.lintcode.com/problem/779/description
https://docs.google.com/document/d/1Frfc6LQDHGAS2kXcoKoahQpH857M6UEABCzaKY2dJs4/edit
HARD https://leetfree.com/problems/minimum-unique-word-abbreviation
https://www.lintcode.com/problem/890/description
https://docs.google.com/document/d/1wAkDYNuaP_KOa0e8o9Lqemox78auijMX6IQ2wr0iEEI/edit
String & Stack
EASY https://leetcode.com/problems/valid-parentheses/
HARD https://leetcode.com/problems/longest-valid-parentheses/
MEDIUM https://leetcode.com/problems/longest-absolute-file-path/
https://docs.google.com/document/d/1Skfm7D-pZMUC4zf0PWePR3sS0Sa9hBDoiudfmo5ixxE/edit
MEDIUM https://leetcode.com/problems/basic-calculator-ii
HARD https://leetcode.com/problems/basic-calculator
String & Hash Table & Math
EASY https://leetcode.com/problems/roman-to-integer
String & Hash Table & Backtracking
MEDIUM https://leetcode.com/problems/letter-combinations-of-a-phone-number/
HARD https://leetfree.com/problems/word-squares
https://docs.google.com/document/d/1IRbXl8eBv4xhVT2z8Qv5kScfl5F7ef7IGJ1c0_GdOv0/edit
String & Dynamic Programming & Recursion/Backtracking
MEDIUM https://leetcode.com/problems/longest-palindromic-substring/
HARD https://leetcode.com/problems/minimum-insertion-steps-to-make-a-string-palindrome/
HARD https://leetcode.com/problems/regular-expression-matching/
MEDIUM https://leetcode.com/problems/generate-parentheses/
HARD https://leetfree.com/problems/encode-string-with-shortest-length
https://docs.google.com/document/d/1kOaG2lJreQoh_Gua7b6ROoHxJuUr7o38b2GekviOMe8/edit
HARD https://leetfree.com/problems/minimum-window-subsequence
https://www.lintcode.com/problem/857/description
https://docs.google.com/document/d/1Bg7At3-GnxwVI8P4H5dlkt7gF7kF0lHpjvwJu11lIJ0/edit
String & Sliding Window & Hash Table
HARD - Longest Substring with At Most K Distinct Characters - https://www.lintcode.com/problem/386/
https://docs.google.com/document/d/19agzdcxcQMHX1QJ53RS5rsQFLAR_iJDgothnmcPVgvM/edit
MEDIUM https://leetcode.com/problems/longest-substring-without-repeating-characters/description/
String & Array
HARD https://leetcode.com/problems/text-justification/
https://docs.google.com/document/d/14fN3Iz0xIEodIUXE5hn0zORIv-cIt9u9Zn7zigZEcEo/edit
String & Hash Table & Array
HARD https://leetfree.com/problems/group-shifted-strings
https://www.lintcode.com/problem/922/
https://docs.google.com/document/d/1OCI2FKwrZYR35j5nulXxm5Cskz29nSseYu16u9hhvp4/edit
HARD https://leetfree.com/problems/word-abbreviation
https://docs.google.com/document/d/1vMykQsFgVX-7QMXRuU7Lc0xKp1If1xd168g9LSYUZog/edit
String & Hash Table & Set
MEDIUM https://leetfree.com/problems/unique-word-abbreviation
https://docs.google.com/document/d/1Y7r7ufeYOItC3WUp7Jp9tMZEY94I3vbvtucLDB6sYkk/edit
EASY https://leetfree.com/problems/sentence-similarity
https://docs.google.com/document/d/1iV9xPZ1EdRiCTHY4FGlT44Sw9bLOS08E8U4lyRWmaJo/edit
String & Hash Table & Queue & Priority Queue & Heap
HARD https://leetfree.com/problems/rearrange-string-k-distance-apart
https://www.lintcode.com/problem/907/
https://docs.google.com/document/d/1D8PxggBxXur2F_j88idudqMeHGlgswZWU9jf4ESWwcQ/edit
Matrix
MEDIUM https://leetfree.com/problems/bomb-enemy
https://docs.google.com/document/d/1tFf3f2j7hcp4wNwxIbYLc5e2rPony_eNHbZSahH8rY8/edit
MEDIUM https://leetfree.com/problems/sentence-screen-fitting
https://docs.google.com/document/d/1sESwb_asGvDpeqMkJGzku_DTzj7z7DBLhFxF6m_c0bc/edit
MEDIUM https://leetcode.com/problems/game-of-life/
https://docs.google.com/document/d/1Qq0FKhJHcTy5UnP6dy0rp7eRUMmwPsCCw-6e1mg1Y84/edit
EASY https://leetfree.com/problems/valid-word-square
https://www.lintcode.com/problem/888/description
https://docs.google.com/document/d/181nKMHO9HB6k6HBfg3ujYIG4-1xkJVZd7eTI0Tz2u8c/edit
Matrix & Hash Table
MEDIUM https://leetfree.com/problems/lonely-pixel-i
https://docs.google.com/document/d/1BdeZmyG5TpvQQZtbN5ugaWd_dRk7h_Ud3P7dO7YPGt0/edit
MEDIUM https://leetfree.com/problems/lonely-pixel-ii
https://www.lintcode.com/problem/881/description
https://docs.google.com/document/d/1BjdZ_Jgt0uNX_x6eSYL-M0Py4OIdlF78wUo6k4CtF_c/edit
Matrix & Dynamic Programming
MEDIUM https://leetfree.com/problems/longest-line-of-consecutive-one-in-matrix
https://docs.google.com/document/d/1beHxEeKpQoh1KNxfFlKUJS6zmMcyknhYRGi77h6mTM4/edit
Matrix & DFS & BFS
MEDIUM https://leetcode.com/problems/pacific-atlantic-water-flow/
MEDIUM https://leetfree.com/problems/walls-and-gates
https://www.lintcode.com/problem/663/description
https://docs.google.com/document/d/1on90YvY-EHzi0rR4Ff8YKF0Bcg56p23-SupMK1pL9nk/edit
HARD https://leetfree.com/problems/shortest-distance-from-all-buildings
https://www.lintcode.com/problem/803/description
https://docs.google.com/document/d/1Wtb-3Vh-28fOQTjkK2UDoOMAnzyDal5gsW2YaKlt8jY/edit
MEDIUM https://leetfree.com/problems/android-unlock-patterns
https://docs.google.com/document/d/1zDOYPIJSyxBMos7va94Ckj3ts0i7ealz2U9DpLN_Lc0/edit
HARD https://leetfree.com/problems/smallest-rectangle-enclosing-black-pixels
https://docs.google.com/document/d/1ET7ePcPUOvzbWIqh2YXeviYGDEVWIuE2M3s9Q8MKbWM/edit
MEDIUM https://leetfree.com/problems/the-maze
https://docs.google.com/document/d/1--2Chf6rpQ-W_INcaTpME-k8WhuZqXSdJ3Gbz1ldRtc/edit
MEDIUM https://leetfree.com/problems/the-maze-ii
https://docs.google.com/document/d/1tBUfBSAhNu4yff6CKifzNVBRQ7DOBf2o6Crhru8CR08/edit
Matrix & DFS & BFS & Union Find
MEDIUM https://leetcode.com/problems/number-of-islands/
HARD https://leetfree.com/problems/number-of-islands-ii
https://docs.google.com/document/d/1xMv1QhgVOdDNvbQ3S-nInmeSsPqqVGZREGDjaroExtw/edit
Matrix & Array & Design
MEDIUM https://leetfree.com/problems/design-tic-tac-toe
https://docs.google.com/document/d/1s9olgGx6u8uWupYKhD1PiSOUAnDeDnqJgUhhJq1Oa7g/edit
Math
MEDIUM https://leetcode.com/problems/reverse-integer/
Array
MEDIUM https://leetfree.com/problems/missing-ranges
https://www.lintcode.com/problem/641/
https://docs.google.com/document/d/1Ja_IOhCeOFFnQvXZYY6-gHclS3aSrQmm1YZPLlJa_kU/edit
MEDIUM https://leetfree.com/problems/range-addition
https://docs.google.com/document/d/14RBUkiYomXDZMck06rABbb8ztrZy9SammX5hwM7Tqjs/edit
MEDIUM https://leetfree.com/problems/find-permutation
https://www.lintcode.com/problem/884/description
https://docs.google.com/document/d/1bqXz3IeRzOKjcBVQ-pxFR-qVxfoT2pw3Tq63Qwvuj3U/edit
Array & Math
MEDIUM https://leetfree.com/problems/sort-transformed-array
https://docs.google.com/document/d/1dt27fssDRLLJVXbNYUGYcjWFaihMaXSi1knJZycwO3c/edit
Array & Math & Set
MEDIUM https://leetfree.com/problems/line-reflection
https://www.lintcode.com/problem/line-reflection/description
https://docs.google.com/document/d/1hacMUc89PQd1zgLrD32PWHUdO8ox7wXk1ciR21sqaP8/edit
Array & Binary Search & Divide and Conquer
HARD https://leetcode.com/problems/median-of-two-sorted-arrays/
EASY https://leetcode.com/problems/kth-missing-positive-number/
Array & Divide and Conquer & Sorting & Quickselect
MEDIUM https://leetfree.com/problems/wiggle-sort.html
https://www.lintcode.com/problem/508/description
https://docs.google.com/document/d/1tSkoFmrRP9vuUT4rvenkgP3z7YKwC5_cxlwWLJdtUbg/edit
HARD https://leetcode.com/problems/wiggle-sort-ii/
https://www.lintcode.com/problem/507/description
https://docs.google.com/document/d/1a9OjNCOnCiuzHC6hxJq8XRzpcUMwqK-puvA8BjuoPv0/edit
MEDIUM https://leetcode.com/problems/top-k-frequent-elements/
Array & Dynamic Programming
EASY https://leetcode.com/problems/maximum-subarray/
MEDIUM https://leetcode.com/problems/maximum-product-subarray/
EASY https://leetcode.com/problems/best-time-to-buy-and-sell-stock/
MEDIUM https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/
https://docs.google.com/document/d/1EHYrfU1PC9Dt-kdXjfgTUCILQgs7I_zrq08UvWiIgMo/edit
HARD (I DID NOT FINISH) https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/
https://docs.google.com/document/d/1TsMAB5kKagC0w5KEmy0EhDOaAh30QhR0q60wEhhHXyU/edit
EASY https://leetcode.com/problems/min-cost-climbing-stairs/
MEDIUM https://leetcode.com/problems/house-robber/
EASY https://leetfree.com/problems/paint-fence
https://www.lintcode.com/problem/514/description
https://docs.google.com/document/d/1go8k2uEkaLhj443ZirLInnWY7r6MEu_-Ey2Sv84J67E/edit
MEDIUM https://leetcode.com/problems/partition-equal-subset-sum/
Array & Dynamic Programming & Queue & Monotonic Queue
HARD https://leetfree.com/problems/coin-path
https://www.lintcode.com/problem/866/description
https://docs.google.com/document/d/1Qs_RaR8uvE8KQ-l4FSIgfqx02LjIRD2E24tM2GSjxmc/edit
Array & Sorting & Heap & Greedy
EASY - Meeting Rooms - https://www.lintcode.com/problem/920/
MEDIUM - Meeting Rooms II - https://www.lintcode.com/problem/919/
https://docs.google.com/document/d/1ZKfmgo2ghLN2Ux3ckRsHvpkNeNzzWNI-KX8KABygbFE/edit
MEDIUM https://leetcode.com/problems/non-overlapping-intervals
Array & Prefix Sum
MEDIUM https://leetcode.com/problems/product-of-array-except-self/
MEDIUM https://leetcode.com/problems/range-sum-query-2d-immutable/
https://docs.google.com/document/d/1Bv3WA9DkvhtXQnBZkuBzusu9-gqe8_ZW5O_lLx_wblU/edit
HARD https://leetcode.com/problems/range-sum-query-2d-mutable/
https://www.lintcode.com/problem/817/description
Array & Hash Table
EASY https://leetcode.com/problems/two-sum/
HARD https://leetcode.com/problems/first-missing-positive/
EASY https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/
MEDIUM https://leetcode.com/problems/find-all-duplicates-in-an-array/
Array & Hash Table & Monotonic Stack
EASY https://leetcode.com/problems/next-greater-element-i/
https://docs.google.com/document/d/1f9nHwYBce2_uYJEbnNdGTJkaI7a1uO66_jiR6puizkI/edit
Array & Stack & Monotonic Stack
HARD https://leetcode.com/problems/largest-rectangle-in-histogram/
https://docs.google.com/document/d/1fN5rTiQdkLGQ_jpPZHXB5GYStZPFKUF0cq3VKWxxntI/edit
Array & Stack & Monotonic Stack & Dynamic Programming & Two Pointers
HARD https://leetcode.com/problems/trapping-rain-water/
https://docs.google.com/document/d/1_iPhFiVBxqlxA_I2QCdPJ4H82hogtxK7_GaO0EwPDYE/edit
Array & Bit Manipulation
EASY https://leetcode.com/problems/single-number/
Array & Sliding Window
HARD https://leetfree.com/problems/k-empty-slots
https://docs.google.com/document/d/1YwPH2s6M0JJDx-gqkpYMoaMBrHvxXry4Cy7Om4xFTrU/edit
MEDIUM https://leetfree.com/problems/max-consecutive-ones-ii
https://www.lintcode.com/problem/max-consecutive-ones-ii/description
https://docs.google.com/document/d/1Nn5ax6wKPqaJfpCI5KgFEOpGiTR4JJthWq__ESGqONA/edit
MEDIUM https://leetcode.com/problems/fruit-into-baskets
Array & Sorting & Sliding Window
HARD https://leetfree.com/problems/3sum-smaller
https://www.lintcode.com/problem/918/description
https://docs.google.com/document/d/1Hw3qXho9D-MfAWw8ngK6Kgn8_dql7nLHZA7zyXTppe0/edit
Array & Sliding Window & Queue & Monotonic Queue & Heap & Prefix Sum
HARD https://leetcode.com/problems/sliding-window-maximum/
https://docs.google.com/document/d/18Nlp37ypKCI63DTtKaHzyWrkAr5EJTcqvhGD-z4719E/edit
HARD https://leetcode.com/problems/shortest-subarray-with-sum-at-least-k/
https://docs.google.com/document/d/1kVNgKqIQf2yAExKNjqmAkF9oqWVBdE0fLY_zcsGYSN8/edit
HARD https://leetfree.com/problems/maximum-average-subarray-ii
https://docs.google.com/document/d/1hgpp4Eid5HkxX7hqZ-0ZD6Zh2_ZpeHRntN2zzJUpi3I/edit
Array & Iterator & Design
MEDIUM https://leetfree.com/problems/zigzag-iterator
https://docs.google.com/document/d/1sObseKpnEVtvNINbs3S7Tmdo2YDUy-65t9kXPC5tJ0Q/edit
MEDIUM https://leetfree.com/problems/flatten-2d-vector
https://docs.google.com/document/d/1aTroVSknrJ1kwtqs2foNMEK4-rEpPnxhbzW_w6VpGOw/edit
Array & Two Pointers & Stack & Greedy & Sorting & Monotonic Stack
MEDIUM https://leetcode.com/problems/shortest-unsorted-continuous-subarray/
https://docs.google.com/document/d/1MGsfvf91b6JvpmDZ7x2B29TVskJwUa-KmWoK-kD7ESM/edit
Array & Design & Hash Table
MEDIUM https://leetfree.com/problems/design-hit-counter
https://docs.google.com/document/d/1MGsfvf91b6JvpmDZ7x2B29TVskJwUa-KmWoK-kD7ESM/edit
Array & Design & Pointer & Buffer
HARD https://leetfree.com/problems/read-n-characters-given-read4-ii-call-multiple-times
https://docs.google.com/document/d/1lReL7WO6NQxOJShWuT6YswQWTwGDhhbbanzNICazj1M/edit
Hash Table & Design
EASY https://leetfree.com/problems/logger-rate-limiter
https://docs.google.com/document/d/1aejnbmxBG1oHv97JTHeXhJTBxghltwvgXYqk4khIATY/edit
Queue & Set & Design
MEDIUM https://leetfree.com/problems/design-snake-game
https://docs.google.com/document/d/1lpPeoaG1igWP3e7Py6uTtRyPk2WmM-Z_BEFzP9nrRnQ/edit
Queue & Stream & Greedy
EASY https://leetfree.com/problems/moving-average-from-data-stream
https://docs.google.com/document/d/1aISXsuz5hw63kQtA15ToLc94UH0JLZYSViz2nuuxMUw/edit
Dynamic Programming
EASY https://leetcode.com/problems/climbing-stairs/
MEDIUM https://leetfree.com/problems/4-keys-keyboard
https://www.lintcode.com/problem/867/description
https://docs.google.com/document/d/1wBJXFYNneUSnk2Lkk5mKKXcntORRx_YJpcTY5fNIu1U/edit
Heap & Set
MEDIUM https://leetfree.com/problems/design-phone-directory
https://docs.google.com/document/d/17QdFcANghw2OGdcIynyF-yT5ug_wn76chhIK4EwITho/edit
LinkedList & Divide and Conquer & Heap (Priority Queue) & Merge Sort
HARD https://leetcode.com/problems/merge-k-sorted-lists/
LinkedList
EASY https://leetcode.com/problems/reverse-linked-list/
https://docs.google.com/document/d/1lbyKMqF89wIwFdRCe9aUgTeq69dmZ-K1F5VGFw39yGU/edit
HARD https://leetcode.com/problems/reverse-nodes-in-k-group/
MEDIUM https://leetcode.com/problems/rotate-list/description/
MEDIUM https://leetcode.com/problems/add-two-numbers/
EASY https://leetcode.com/problems/intersection-of-two-linked-lists/
https://docs.google.com/document/d/1Ct5cZD19QqDfHe3UlevcYP2REMHj3tP_wDnSdEBdQEk/edit
MEDIUM https://leetcode.com/problems/remove-nth-node-from-end-of-list/
https://docs.google.com/document/d/168pYWvRzxLsY_RCbFkDiM-DBP7caEvw2qKMIgXwNwM0/edit
EASY https://leetcode.com/problems/middle-of-the-linked-list
Tree & DFS & BFS
EASY https://leetcode.com/problems/minimum-depth-of-binary-tree/
EASY https://leetcode.com/problems/same-tree/
EASY https://leetcode.com/problems/diameter-of-binary-tree/
EASY https://leetcode.com/problems/merge-two-binary-trees/
EASY https://leetcode.com/problems/invert-binary-tree/
MEDIUM https://leetcode.com/problems/binary-tree-level-order-traversal/
MEDIUM https://leetcode.com/problems/all-nodes-distance-k-in-binary-tree/
MEDIUM https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/
MEDIUM https://leetfree.com/problems/boundary-of-binary-tree
https://www.lintcode.com/problem/878/description
https://docs.google.com/document/d/1cD6VKwh6YPFZp3J2lq2ycLx3NxKT_xn7RPpMx5mlF0A/edit
MEDIUM https://leetfree.com/problems/binary-tree-longest-consecutive-sequence
https://www.lintcode.com/problem/595/
https://docs.google.com/document/d/12FVRHPxu1ZkRZWx1rAYOo7VYXegUGDztf_c7WnlwMEY/edit
MEDIUM https://leetfree.com/problems/binary-tree-longest-consecutive-sequence-ii
https://www.lintcode.com/problem/binary-tree-longest-consecutive-sequence-ii/description
https://docs.google.com/document/d/1oV4VSQE-KJADw-pR7cdj2Ixl-8r9nRyeyZrgvbof_2M/edit
HARD https://leetcode.com/problems/vertical-order-traversal-of-a-binary-tree/
https://leetfree.com/problems/binary-tree-vertical-order-traversal
https://docs.google.com/document/d/1AuKyH8VGjEA_pMDQRPWjQ9hQc5qD6in5_VW6RSyVeRs/edit
Binary Search Tree
EASY https://leetfree.com/problems/closest-binary-search-tree-value
https://docs.google.com/document/d/1TBHKfAzAEXXMUzlMoNWJkEc2u44qeYdUCEfWvO4_i-o/edit
HARD https://leetfree.com/problems/closest-binary-search-tree-value-ii
https://www.lintcode.com/problem/901/description
https://docs.google.com/document/d/1UnwGthB03KcQR6fdq_buT5ot6mPw55MVueNP4_HSKLw/edit
Trie & Hash Table & String & Design
MEDIUM https://leetcode.com/problems/implement-trie-prefix-tree/
HARD https://leetcode.com/problems/design-search-autocomplete-system/
https://leetcode.ca/all/642.html
Graph & DFS
MEDIUM https://leetfree.com/problems/graph-valid-tree
https://www.lintcode.com/problem/178/description
https://docs.google.com/document/d/1m2N8KaJwvExYCB2hW6JvySN8ICc-stj6kntYYy-7LVE/edit
MEDIUM https://leetfree.com/problems/number-of-connected-components-in-an-undirected-graph
https://docs.google.com/document/d/1z45PvOHQFgWFJRY-A4aYN3FRZ_fS8iD6K6S7xqagENs/edit
HARD https://leetfree.com/problems/maximum-vacation-days
https://www.lintcode.com/problem/874/description
https://docs.google.com/document/d/1hQU4OmHxtBMVi_n61baYd3CghrsfP8ACxh0k-3QiEhI/edit
HARD https://leetcode.com/problems/reconstruct-itinerary/
https://docs.google.com/document/d/1LxFSfPXpHg6mQQlb1vn9B7tmpw3bQlvaP1kNDz9nwkk/edit
Graph & Adjacency Matrix & Heap
HARD https://leetfree.com/problems/optimal-account-balancing
https://docs.google.com/document/d/1iHGo0aUm58Tnj3ZPliU0iZp0SispAR3q7IHPQawIW08/edit
Graph & DFS & BFS & Topological Sort
MEDIUM https://leetfree.com/problems/sentence-similarity-ii
https://docs.google.com/document/d/1Q1ztSF2CUdsXE6e5jNiWgxEAG4WHZ8uE5LrRkhRyKgE/edit
MEDIUM https://leetcode.com/problems/course-schedule/
MEDIUM https://leetcode.com/problems/course-schedule-ii/
HARD https://leetfree.com/problems/alien-dictionary
https://www.lintcode.com/problem/892/
https://docs.google.com/document/d/1qszcdc5o4eMnMB8F26krRh7XmbRVvq6Uux-wouDboAU/edit
MEDIUM https://leetfree.com/problems/sequence-reconstruction
https://www.lintcode.com/problem/605/description
https://docs.google.com/document/d/1IFKcopuk7AOY8M0B7ZdMCPHRHLLHi6rhzvGrqpyp85Q/edit
SQL
HARD https://leetfree.com/problems/median-employee-salary
https://docs.google.com/document/d/1XBQ6wDQWQRTGCKJrYJ4pnZDLHvkpZu9Vc04OHjinQBI/edit