My interview roadmap 2023
Anonymous User
19444
					**6 Month Roadmap**
1 month
- Two Pointers   (2 weeks)
- Sliding Window (2 weeks)

1 Month
- Queue (2 weeks)
- Stack  (2 weeks)  

1 Month
- Linked List   (.5 week) 
- Tree          (1.5 weeks) 
- Backtracking  (2 weeks) 

1 Month
- Binary Search (2 weeks) 
- Trie  (2 weeks)

1 Month
- Graphs (2 weeks)
- 1-DP   (.5 week)
- 2-DP   (1.5 weeks) 

1 Month
- System Design + 1 random previously solved LC problem above <--

Two Pointers (2 weeks)

Mon: 
- Meeting Rooms II (M)
	- https://leetcode.com/problems/meeting-rooms-ii/submissions/869832607/
	- https://leetcode.com/problems/meeting-rooms-ii/submissions/869893637/
- Remove Nth Node From End of List (M)
	- https://leetcode.com/problems/remove-nth-node-from-end-of-list/solutions/3019976/1-pass-solution-maintain-a-gap-of-n-nodes/
Tue: 
- 3Sum (M)
	- https://leetcode.com/problems/3sum/submissions/870526555/
- Bag of Tokens (M)
	- https://leetcode.com/problems/bag-of-tokens/solutions/3020047/nlogn-solution-using-two-pointers/
Wed:
- Next Permutation (M)
	- https://leetcode.com/problems/next-permutation/submissions/871315701/
- Permutation in String (M)
	- https://leetcode.com/problems/permutation-in-string/solutions/3020214/sliding-window/
Thur: 
- Container With Most Water (M)
	- https://leetcode.com/problems/container-with-most-water/submissions/871980197/
- K-diff Pairs in an Array (M)
	- https://leetcode.com/problems/k-diff-pairs-in-an-array/solutions/3022634/two-pointers-o-nlogn-hashmap-o-n/
Fri: 
- String Compression (M)
	- https://leetcode.com/problems/string-compression/submissions/873057764/
- Find the Index of the First Occurrence in a String (M)
	- O(mn) - https://leetcode.com/problems/find-the-index-of-the-first-occurrence-in-a-string/submissions/873040769/
	- TODO Implement KMP algorithm
Sat: 
- Reverse Words in a String (M)
	- https://leetcode.com/problems/reverse-words-in-a-string/submissions/873638111/
- Push Dominoes (M)
	- https://leetcode.com/problems/push-dominoes/solutions/3145017/two-pointers-intuitive-approach-i-promise-you/
- Remove Duplicates from Sorted Array (E)
	- https://leetcode.com/problems/remove-duplicates-from-sorted-array/submissions/872398549/
- Move Zeroes (E)
	- https://leetcode.com/problems/move-zeroes/submissions/873626348/
Sun: 
- 4Sum (M)
	- https://leetcode.com/problems/4sum/submissions/873341584/
- 3Sum Closest (M)
	- https://leetcode.com/problems/3sum-closest/submissions/874075232/
- Remove Palindromic Subsequences (E)
	- https://leetcode.com/problems/remove-palindromic-subsequences/solutions/3020325/two-pointers/
Mon: 
- Dot Product of Two Sparse Vectors (M)
	- https://leetcode.com/problems/dot-product-of-two-sparse-vectors/solutions/3025323/storing-non-zero-elements-and-their-index-list-hashmap/?orderBy=newest_to_oldest
- Shortest Subarray to be Removed to Make Array Sorted (M)
	- https://leetcode.com/problems/shortest-subarray-to-be-removed-to-make-array-sorted/solutions/3028930/pray-you-dont-get-this-in-interview-o-n-solution/
Tue: 
- Find K Closest Elements (M)
	- https://leetcode.com/problems/find-k-closest-elements/solutions/3036131/priority-queue-binary-search-two-pointers-two-pointers/?fbclid=IwAR0osFwqEShCGu_KVkxHIlaWUj6zEQJocPSH_DJIk9ptjS-M0zHp8HmCYbc
- Sort List (M)
	- TODO
Wed: 
- Rotate Array (M)
	- https://leetcode.com/problems/rotate-array/solutions/3036311/two-pointers/
- Longest Mountain in Array (M)
    - https://leetcode.com/problems/longest-mountain-in-array/solutions/3041256/two-pointers/
Thur: 
- Next Greater Element III (M)
	- https://leetcode.com/problems/next-greater-element-iii/solutions/3047426/just-like-official-solution/
- Shortest Unsorted Continuous Subarray (M)
	- https://leetcode.com/problems/shortest-unsorted-continuous-subarray/submissions/877754229/
Fri: 
- Find the Duplicate Number (M)
	- https://leetcode.com/problems/find-the-duplicate-number/solutions/3050476/marking-visited-elements-as-negatives/
- Rotate List (M)
	- https://leetcode.com/problems/rotate-list/solutions/3050501/two-pointers-keeping-k-distances-apart/
Sat: 
- Candy Crush (M)
- Sort Colors (M)
	- https://leetcode.com/problems/sort-colors/solutions/3051315/one-pass/
- Valid Palindrome II (E)
	- https://leetcode.com/problems/valid-palindrome-ii/solutions/3053356/two-pointers/
Sun: 
- Longest String Chain (M)
	- https://leetcode.com/problems/longest-string-chain/solutions/3057365/dfs-memoization-dfs-bottom-up-dynamic-programming/
- Reorder List (M)
- Palindrome Linked List (E)
	- https://leetcode.com/problems/palindrome-linked-list/solutions/3057548/two-pointers/

Sliding Window (2 weeks)

Mon:
- Longest Substring Without Repeating Characters (M)
	- https://leetcode.com/problems/longest-substring-without-repeating-characters/solutions/3064746/3-java-implementations-from-hashmap-set-optimized-hashmap/
- Maximum Length of Repeated Subarray (M)
	- https://leetcode.com/problems/maximum-length-of-repeated-subarray/solutions/3064759/just-like-brute-force-approach-in-official-solution/
	- TODO optimized version
Tue:
- Find K Closest Elements (M)
	- https://leetcode.com/problems/find-k-closest-elements/solutions/3036131/priority-queue-binary-search-two-pointers-two-pointers/?fbclid=IwAR0osFwqEShCGu_KVkxHIlaWUj6zEQJocPSH_DJIk9ptjS-M0zHp8HmCYbc
- Jump Game VI (M)
	- https://leetcode.com/problems/jump-game-vi/solutions/3068982/dynamic-programming-maxheap/
Wed:
- Longest Repeating Character Replacement (M)
	- https://leetcode.com/problems/longest-repeating-character-replacement/solutions/3069192/sliding-window/
- Longest Substring with At Most K Distinct Characters (M)
	- https://leetcode.com/problems/longest-substring-with-at-most-k-distinct-characters/solutions/3075845/sliding-window-using-hashmap-or-array/
Thur:
- Permutation in String (M)
- Find All Anagrams in a String (M)
	- https://leetcode.com/problems/find-all-anagrams-in-a-string/solutions/3080057/sliding-window-hashmap-or-array-implementations/
Fri:
- Max Consecutive Ones III (M)
	- https://leetcode.com/problems/max-consecutive-ones-iii/solutions/3080238/sliding-window/
- Fruit Into Baskets (M)
	- https://leetcode.com/problems/fruit-into-baskets/solutions/3081954/sliding-window-at-most-2-unique-integers/
Sat:
- Maximum Points You Can Obtain from Cards (M)
	- https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards/solutions/3082794/sliding-window-prefix-sum/
- Longest Subarray of 1s After Deleting One Element (M)
	- https://leetcode.com/problems/longest-subarray-of-1s-after-deleting-one-element/solutions/3082917/sliding-window-sliding-window-optimized/
- Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit (M)
	- https://leetcode.com/problems/longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit/solutions/3084619/dequeue-just-like-everyone-elses-with-comments/
- Longest Substring with At Least K Repeating Characters (M)
	- https://leetcode.com/problems/longest-substring-with-at-least-k-repeating-characters/solutions/3086713/sliding-window/
Sun:
- Subarray Product Less Than K (M)
	- https://leetcode.com/problems/subarray-product-less-than-k/solutions/3088165/sliding-window/?orderBy=most_votes
- Minimum Size Subarray Sum (M)
	- https://leetcode.com/problems/minimum-size-subarray-sum/solutions/3088460/sliding-window/
- Frequency of the Most Frequent Element (M)
	- https://leetcode.com/problems/frequency-of-the-most-frequent-element/solutions/3088880/presorting-sliding-window/
- Repeated DNA Sequences (M)
	- https://leetcode.com/problems/repeated-dna-sequences/solutions/3088990/hashset-sliding-window
Mon:
- Minimum Swaps to Group All 1s Together II (M)
	- https://leetcode.com/problems/minimum-swaps-to-group-all-1s-together-ii/solutions/3090499/sliding-window-intuitive-explanation/
- New 21 Game (M)
	- TODO
Tue:
- Longest Substring with At Most Two Distinct Characters (M)
	- https://leetcode.com/problems/longest-substring-with-at-most-two-distinct-characters/solutions/3096245/just-like-any-sliding-window-problem/
- Minimum Swaps to Group All 1s Together (M)
	- https://leetcode.com/problems/minimum-swaps-to-group-all-1s-together/solutions/3096228/sliding-window/
Wed:
- Count Number of Nice Subarrays (M)
	- https://leetcode.com/problems/count-number-of-nice-subarrays/solutions/3100607/sliding-window-two-pass/?orderBy=most_votes
- Maximum Sum of Two Non-Overlapping Subarrays (M)
	- TODO
Thur:
- Max Consecutive Ones II (M)
	- https://leetcode.com/problems/max-consecutive-ones-ii/solutions/2137096/3-sliding-window-variations/
- Longest Turbulent Subarray (M)
	- https://leetcode.com/problems/longest-turbulent-subarray/solutions/3104634/dynamic-programming-solution-variations/
Fri:
- Replace the Substring for Balanced String (M)
	- https://leetcode.com/problems/replace-the-substring-for-balanced-string/solutions/3108336/sliding-window/
- Grumpy Bookstore Owner (M)
	- https://leetcode.com/problems/grumpy-bookstore-owner/solutions/3109918/sliding-window-totalcustomers-grumpycustomers-grumpyturnedsatisfied
Sat:
- Swap For Longest Repeated Character Substring (M)
	- https://leetcode.com/problems/swap-for-longest-repeated-character-substring/solutions/3112505/hashmap-two-pointers/
- Longest Nice Subarray (M)
	- https://leetcode.com/problems/longest-nice-subarray/solutions/3111229/sliding-window-bit-manipulation/
- Contains Duplicate II (E)
	- https://leetcode.com/problems/contains-duplicate-ii/solutions/1907700/bruteforce-sorting-hashmap-two-pointers-hashmap/
- Longest Nice Substring (E)
Sun:
- Sliding Window Maximum (H)
	- https://leetcode.com/problems/sliding-window-maximum/solutions/3114461/priority-queue-dequeue/
- Minimum Window Substring (H)
	- https://leetcode.com/problems/minimum-window-substring/solutions/3114667/sliding-window/

Queue (2 weeks)

Mon:
- Meeting Rooms II (M) DONE 2x
	- https://leetcode.com/problems/meeting-rooms-ii/solutions/3121351/sorting-priority-queue/
- Kth Largest Element in an Array (M) DONE 2x
	- https://leetcode.com/problems/kth-largest-element-in-an-array/solutions/3130276/quickselect-algorithm-explained-recursion-and-iterative-solutions
Tue:
- Reorganize String (M) DONE 2x
	- https://leetcode.com/problems/reorganize-string/solutions/3125828/greedy-priorityqueue/
- Split Array into Consecutive Subsequences (M)
	- https://leetcode.com/problems/split-array-into-consecutive-subsequences/solutions/3125846/priority-queue/
Wed:
- Find K Closest Elements (M) DONE 2x
	- https://leetcode.com/problems/find-k-closest-elements/solutions/3036131/priority-queue-binary-search-two-pointers-two-pointers (redo)
- Jump Game VI (M) DONE 2x
	- https://leetcode.com/problems/jump-game-vi/solutions/3068982/dynamic-programming-maxheap/ (redo)
Thur:
- Top K Frequent Words (M) DONE 2x
	- https://leetcode.com/problems/top-k-frequent-words/solutions/3135059/bucket-sort-minheap/
- Top K Frequent Elements (M)
	- https://leetcode.com/problems/top-k-frequent-elements/solutions/3135095/bucket-sort-quickselect/
Fri:
- Maximum Number of Events That Can Be Attended (M) DONE 2x
	- https://leetcode.com/problems/maximum-number-of-events-that-can-be-attended/solutions/3139794/ongoing-events-and-unstarted-events-two-queues/
- Task Scheduler (M) DONE 2x
	- leetcode.com/problems/task-scheduler/solutions/3139721/busy-and-idle-queues-intuitive
Sat:
- Sort an Array (M) DONE 2x
	- https://leetcode.com/problems/sort-an-array/solutions/3142764/bucket-sort-o-1-time-and-space-beats-99
- Stock Price Fluctuation (M) DONE 2x
	- https://leetcode.com/problems/stock-price-fluctuation/solutions/3143418/be-careful-using-the-heap-offer-heap-poll-to-attempt-to-retrigger-heapify
- K Closest Points to Origin (M)
	- https://leetcode.com/problems/k-closest-points-to-origin/solutions/3142928/quickselect/
- Car Pooling (M) DONE 2x
	- https://leetcode.com/problems/car-pooling/solutions/3144366/priority-queue-bucket-count/
Sun:
- Longest Happy String (M)
	- leetcode.com/problems/longest-happy-string/solutions/3148431/priority-queue
- Reduce Array Size to The Half (M)
	- https://leetcode.com/problems/reduce-array-size-to-the-half/solutions/3148456/priority-queue-bucket-sort/
- Kth Smallest Element in a Sorted Matrix (M)
	- TODO
- Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit (M)
	- https://leetcode.com/problems/longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit/solutions/3084619/dequeue-just-like-everyone-elses-with-comments/
Mon:
- Design Twitter (M)
	- https://leetcode.com/problems/design-twitter/solutions/3154519/linkedlist-priority-queue/
- Sort Characters By Frequency (M)
	- leetcode.com/problems/sort-characters-by-frequency/solutions/3154563/bucket-sort-why-dont-i-get-this-in-interview-questions
Tue:
- Cheapest Flights Within K Stops (M) DONE 2x
	- https://leetcode.com/problems/cheapest-flights-within-k-stops/solutions/3163784/breadth-first-search/
- Ugly Number II (M)
	- TODO
Wed:
- Network Delay Time (M) DONE 2x
	- https://leetcode.com/problems/network-delay-time/solutions/649984/bfs-dijkstra/
- Avoid Flood in The City (M)
	- TODO
Thur:
- Divide Intervals Into Minimum Number of Groups (M)
	- leetcode.com/problems/divide-intervals-into-minimum-number-of-groups/solutions/3167203/opposite-of-meeting-rooms-ii
- Find K Pairs with Smallest Sums (M)
	- https://leetcode.com/problems/find-k-pairs-with-smallest-sums/solutions/3168984/brute-force-priority-queue-i-promise-you-this-is-readable-for-dumb-people-like-me/
Fri:
- Furthest Building You Can Reach (M)
	- https://leetcode.com/problems/furthest-building-you-can-reach/solutions/3170869/brute-force-greedy-priorityqueue/
- Max Sum of a Pair With Equal Sum of Digits (M)
Sat:
- Maximum Number of Eaten Apples (M)
	- https://leetcode.com/problems/maximum-number-of-eaten-apples/solutions/3174678/priority-queue/
- Make Array Zero by Subtracting Equal Amounts (E)
	- https://leetcode.com/problems/make-array-zero-by-subtracting-equal-amounts/solutions/3175153/i-feel-dumb-linkedlist-set/
- The K Weakest Rows in a Matrix (E)
	- TODO
- Single-Threaded CPU (M) DONE 2x
	- https://leetcode.com/problems/single-threaded-cpu/solutions/1954420/2-different-approach-sort-heap-vs-two-queues/?orderBy=most_votes
Sun:
- Sell Diminishing-Valued Colored Balls (M)
- Two Best Non-Overlapping Events (M)
- Process Tasks Using Servers (M)
- Find Servers That Handled Most Number of Requests (H)

Stack (2 weeks)

Mon:
- Decode String (M)
	- https://leetcode.com/problems/decode-string/solutions/3183957/one-pass-stack-stringbuilder/
- Remove All Adjacent Duplicates in String II (M)
	- https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string-ii/solutions/3184067/linkedlist-stack/
Tue:
- Sum of Subarray Minimums (M)
	- THIS IS BULL
- Buildings With an Ocean View (M)
	- https://leetcode.com/problems/buildings-with-an-ocean-view/solutions/3187631/stack/?orderBy=most_votes
Wed:
- Minimum Remove to Make Valid Parentheses (M)
	- https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses/solutions/3203075/stackity-stack/
- The Number of Weak Characters in the Game (M)
	- https://leetcode.com/problems/the-number-of-weak-characters-in-the-game/solutions/3203060/tricky-sorting/
Thur:
- Design Browser History (M)
	- https://leetcode.com/problems/design-browser-history/solutions/3207874/linkedlist-as-a-stack/
- Simplify Path (M)
	- 
Fri:
- Asteroid Collision (M)
	- https://leetcode.com/problems/asteroid-collision/solutions/3207694/stackity-stack-and-shi/
- Daily Temperatures (M)
	- https://leetcode.com/problems/daily-temperatures/solutions/3207717/stack/
Sat:
- Basic Calculator II (M)
	- https://leetcode.com/problems/basic-calculator-ii/solutions/3208555/stackity-stack/
- Online Stock Span (M)
	- https://leetcode.com/problems/online-stock-span/solutions/3207858/monotonic-stack-caching/?orderBy=most_votes
- Implement Queue using Stacks (E)
	- https://leetcode.com/problems/implement-queue-using-stacks/solutions/3208598/use-two-stacks-one-for-push-and-one-for-pop-peek/
- Design an Expression Tree With Evaluate Function (M)
Sun:
- Remove Duplicate Letters (M)
	- https://leetcode.com/problems/remove-duplicate-letters/solutions/3230230/brute-force-stack-solution-noob-explanation/
- Flatten Nested List Iterator (M)
	- https://leetcode.com/problems/flatten-nested-list-iterator/solutions/3230298/stack-and-iterators/
- Nested List Weight Sum II (M)
- Valid Parentheses (E)
Mon:
- Max Chunks To Make Sorted (M)
- Evaluate Reverse Polish Notation (M)
Tue:
- Remove K Digits (M)
	- https://leetcode.com/problems/remove-k-digits/solutions/3235472/monotonic-stack/
- Min Stack (M)
	- https://leetcode.com/problems/min-stack/solutions/3235452/two-stacks/
Wed:
- Shortest Subarray to be Removed to Make Array Sorted (M)
- Next Greater Element II (M)
Thur:
- Add Two Numbers II (M)
- Flatten Binary Tree to Linked List (M)
Fri:
- Construct Binary Search Tree from Preorder Traversal (M)
- Shortest Unsorted Continuous Subarray (M)
Sat:
- Exclusive Time of Functions (M)
- Sum of Subarray Ranges (M)
- Palindrome Linked List (E)
- Remove All Adjacent Duplicates In String (E)
Sun:
- Reorder List (M)
- Next Greater Element I (E)
- Make The String Great (E)
- Binary Tree Inorder Traversal (E)

Linked List (.5 week)

Mon:
- LRU Cache
- Add Two Numbers
	- https://leetcode.com/problems/add-two-numbers/solutions/3242726/carry-and-sum/
- Reorder List
	- https://leetcode.com/problems/reorder-list/solutions/3242716/reverse-and-then-two-pointers/
- Reverse Linked List II
Tue:
- Odd Even Linked List
	- https://leetcode.com/problems/odd-even-linked-list/solutions/3242686/two-pointers/
- Flatten a Multilevel Doubly Linked List
	- https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/solutions/3242644/recursion/
- Copy List with Random Pointer
	- https://leetcode.com/problems/copy-list-with-random-pointer/solutions/3242771/original-to-copy-mapping-two-pass-solution/
- Delete Node in a Linked List
Wed:
- Remove Nth Node From End of List
- Design Circular Queue
- Design HashMap Easy
- Middle of the Linked List Easy
-Linked List Cycle Easy
Thur:
- Delete the Middle Node of a Linked List
	- https://leetcode.com/problems/delete-the-middle-node-of-a-linked-list/solutions/3250568/fast-and-slow-pointers/
- Swapping Nodes in a Linked List
	- https://leetcode.com/problems/swapping-nodes-in-a-linked-list/solutions/3250337/one-pass-solution/
- Partition List
	- https://leetcode.com/problems/partition-list/solutions/3250640/use-two-pointers-and-accumulate-each-node-list/
- Flatten Binary Tree to Linked List
	- https://leetcode.com/problems/flatten-binary-tree-to-linked-list/solutions/3251003/two-different-recursion-solutions/
Fri:
- Sort List
- Add Two Numbers II
	- https://leetcode.com/problems/add-two-numbers-ii/solutions/3252365/two-approach-from-on-space-to-o1-space-both-linear-time/
- Flatten Binary Tree to Linked List
	- https://leetcode.com/problems/flatten-binary-tree-to-linked-list/solutions/3251003/two-different-recursion-solutions/
- Rotate List
	- https://leetcode.com/problems/rotate-list/solutions/3050501/two-pointers-keeping-k-distances-apart/

Tree (1.5 weeks)

Sat:
- Lowest Common Ancestor of a Binary Tree (M)
	- https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/solutions/3257121/i-wish-they-asked-me-this-in-interview/
- Binary Tree Vertical Order Traversal (M)
	- https://leetcode.com/problems/vertical-order-traversal-of-a-binary-tree/solutions/3257235/recursion-hashmap/
- All Nodes Distance K in Binary Tree (M)
	- https://leetcode.com/problems/all-nodes-distance-k-in-binary-tree/solutions/3257314/breadth-first-search-and-hashmap/
- Binary Tree Pruning (M)
	- https://leetcode.com/problems/binary-tree-pruning/solutions/3257929/intuitive-solution-to-simplified-code/
Sun:
- Construct Binary Tree from Preorder and Inorder Traversal (M)
	- https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/solutions/663295/detailed-explanation-line-by-line-using-recursion/
- Find Leaves of Binary Tree (M)
	- https://leetcode.com/problems/find-leaves-of-binary-tree/solutions/3259018/bfs-topological-sort/
- Step-By-Step Directions From a Binary Tree Node to Another (M)
	- https://leetcode.com/problems/step-by-step-directions-from-a-binary-tree-node-to-another/solutions/3265354/lca-path-to-s-and-t-todo-optimize-this/
- Binary Tree Right Side View (M)
	- https://leetcode.com/problems/binary-tree-right-side-view/solutions/3265331/level-order-traversal/
Mon:
- Validate Binary Search Tree (M)
	- https://leetcode.com/problems/validate-binary-search-tree/solutions/3266971/inorder-traversal/
- Binary Tree Zigzag Level Order Traversal (M)
	- https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/solutions/3267008/level-order-traversal-with-flip/
Tue:
- Design an Expression Tree With Evaluate Function (M)
- Boundary of Binary Tree (M)
Wed:
- Recover Binary Search Tree (M)
- Lowest Common Ancestor of a Binary Tree III (M)
Thur:
- Maximum Product of Splitted Binary Tree (M)
	- https://leetcode.com/problems/maximum-product-of-splitted-binary-tree/solutions/3282022/prefix-sum-double-pass-to-single-pass-o-n-solutions/
- Binary Tree Level Order Traversal (M)
Fri:
- Add One Row to Tree (M)
- Maximum Difference Between Node and Ancestor (M)
Sat:
- Unique Binary Search Trees (M)
	- https://leetcode.com/problems/unique-binary-search-trees/solutions/3285606/pure-intuitive-recursion-memoization/
- Distribute Coins in Binary Tree (M)
	- https://leetcode.com/problems/distribute-coins-in-binary-tree/solutions/3287367/just-gonna-say-it-that-this-is-a-trick-question/
- Flatten Binary Tree to Linked List (M) - DONE 2x
	- https://leetcode.com/problems/flatten-binary-tree-to-linked-list/solutions/3251003/two-different-recursion-solutions/
- Count Complete Tree Nodes (M)
	- https://leetcode.com/problems/count-complete-tree-nodes/solutions/3287385/logn-logn-solution/
Sun:
- Path Sum III (M)
	- https://leetcode.com/problems/path-sum-iii/solutions/3294147/recursive-bruteforce-prefixsum-hashmap/
- Construct Binary Search Tree from Preorder Traversal (M)
- Maximum Width of Binary Tree (M)
- Lowest Common Ancestor of a Binary Search Tree (M)
	- https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/solutions/3293798/o-h-time-and-space-solution/

Backtracking (2 weeks)

Mon:
- Generate Parentheses (M)
	- https://leetcode.com/problems/generate-parentheses/solutions/3294676/backtracking/
- Letter Combinations of a Phone Number (M
	- https://leetcode.com/problems/letter-combinations-of-a-phone-number/solutions/3294655/recursive-backtracking/
Tue:
- Word Search (M)
	- https://leetcode.com/problems/word-search/solutions/3299062/backtracking/
- Numbers With Same Consecutive Differences (M)
	- https://leetcode.com/problems/numbers-with-same-consecutive-differences/solutions/3299181/backtracking/
Wed:
- Matchsticks to Square (M)
	- https://leetcode.com/problems/matchsticks-to-square/solutions/3312899/backtracking/
- Maximum Length of a Concatenated String with Unique Characters (M)
	- https://leetcode.com/problems/maximum-length-of-a-concatenated-string-with-unique-characters/solutions/3312936/backtracking/
Thur:
- Beautiful Arrangement (M)
- Combination Sum (M)
Fri:
- Permutations (M)
- Palindrome Partitioning (M)
Sat:
- Subsets (M)
	- https://leetcode.com/problems/subsets/solutions/3313002/backtracking-dfs/
- Restore IP Addresses (M)
- Partition to K Equal Sum Subsets (M)
	- https://leetcode.com/problems/partition-to-k-equal-sum-subsets/solutions/3314748/naive-backtracking-optimized-backtracking/
- Additive Number (M)
Sun:
- Combination Sum II (M)
	- https://leetcode.com/problems/combination-sum-ii/solutions/3317209/presorting-backtracking/
- Target Sum (M)
	- https://leetcode.com/problems/target-sum/solutions/3318813/recursion-recursion-caching/
- Subsets II (M)
	- https://leetcode.com/problems/subsets-ii/solutions/3318753/presorting-backtracking/
- Path Sum II (M)
	- https://leetcode.com/problems/path-sum-ii/solutions/3318844/backtracking/?orderBy=most_votes
Mon:
- Minimum Number of Work Sessions to Finish the Tasks (M)
- Shopping Offers (M)
Tue:
- Split Array into Fibonacci Sequence (M)
- Permutations II (M)
	- https://leetcode.com/problems/permutations-ii/solutions/3327556/backtracking-hashset-presorting-backtracking/
Wed:
- Unique Binary Search Trees II (M)
	- https://leetcode.com/problems/unique-binary-search-trees-ii/solutions/3338277/jesus/
- Non-decreasing Subsequences (M)
Thur:
- Palindrome Permutation II (M)
- Path with Maximum Gold (M)
Fri:
- Factor Combinations (M)
- Combinations (M)
	- https://leetcode.com/problems/combinations/solutions/3337349/backtracking/
Sat:
- Gray Code (M)
- Construct the Lexicographically Largest Valid Sequence (M)
- Letter Tile Possibilities (M)
- Split a String Into the Max Number of Unique Substrings (M)
Sun:
- Fair Distribution of Cookies
	- https://leetcode.com/problems/fair-distribution-of-cookies/solutions/3344941/backtracking/
- Closest Dessert Cost
- Coin Change
- Coin Change II

Binary Search (2 weeks)

Mon:
- Maximum Length of Repeated Subarray (M)
	- https://leetcode.com/problems/maximum-length-of-repeated-subarray/solutions/3064759/o-m-n-min-m-n/
- Design Hit Counter (M)
	- https://leetcode.com/problems/design-hit-counter/solutions/3361517/o-n-time-and-o-1-space-linkedlist-hashmap/?orderBy=most_votes
Tue:
- My Calendar I (M)
	- https://leetcode.com/problems/my-calendar-i/solutions/3367273/o-n-o-logn-treemap-binarysearch/
- Find First and Last Position of Element in Sorted Array (M)
	- https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/solutions/1832390/my-solution-2-years-ago-solution-recently/
Wed:
- Search in Rotated Sorted Array (M)
	- https://leetcode.com/problems/search-in-rotated-sorted-array/solutions/3367411/binarysearch-just-like-everyone-else-s-solution/
- Random Pick with Weight (M)
	- https://leetcode.com/problems/random-pick-with-weight/solutions/1691913/step-by-step-solution-intuitive-approach/
Thur:
- Longest Increasing Subsequence (M)
	- https://leetcode.com/problems/longest-increasing-subsequence/solutions/3367833/recursive-brute-force-recursion-with-caching-dynamic-programming-with-tabulation/
- Find K Closest Elements (M)
Fri:
- Peak Index in a Mountain Array (M)
- Koko Eating Bananas (M)
	- https://leetcode.com/problems/koko-eating-bananas/solutions/3371470/binary-search-on-derived-data/
Sat:
- Find the Duplicate Number (M)
	- https://leetcode.com/problems/find-the-duplicate-number/solutions/3372597/negative-marking/
- Search a 2D Matrix (M)
	- https://leetcode.com/problems/search-a-2d-matrix/solutions/1853859/two-binary-search-and-1-binary-search-solution/
- Plates Between Candles (M)
	- https://leetcode.com/problems/plates-between-candles/solutions/3373251/binary-search-mlogn-solution/
- Find Peak Element (M)
Sun:
- Single Element in a Sorted Array (M)
	- https://leetcode.com/problems/single-element-in-a-sorted-array/solutions/3385416/binary-search-intuitive-approach/
- Snapshot Array (M)
	- https://leetcode.com/problems/snapshot-array/solutions/1843344/naive-solution-hashmap-binarysearch-treemap/?orderBy=most_votes
- Capacity To Ship Packages Within D Days (M)
	- https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/solutions/1889467/binary-search-explained-with-comments-line-by-line/
- Missing Number (E)
Mon:
- Time Based Key-Value Store (M)
	- https://leetcode.com/problems/time-based-key-value-store/solutions/3399264/binarysearch-line-by-line-explained/
- K-diff Pairs in an Array (M)
	- https://leetcode.com/problems/k-diff-pairs-in-an-array/solutions/3417267/o-n-time-space-solution-using-hashmap/
Tue:
- Maximum Earnings From Taxi (M)
	- https://leetcode.com/problems/maximum-earnings-from-taxi/solutions/3422824/brute-force-recursion-memoization-memoization-binarysearch/
- Max Consecutive Ones III (M)
	- https://leetcode.com/problems/max-consecutive-ones-iii/solutions/3080238/sliding-window/
Wed:
- Guess Number Higher or Lower (E)
	- https://leetcode.com/problems/guess-number-higher-or-lower/solutions/3417321/binary-search-intuitively-named-variables/
- Kth Smallest Element in a Sorted Matrix (M)
Thur:
- Longest Arithmetic Subsequence (M)
- Count Complete Tree Nodes (M)
Fri:
- Minimum Time to Complete Trips (M)
	- https://leetcode.com/problems/minimum-time-to-complete-trips/solutions/3428774/binary-search-like-everybody-else-s/
- Two Sum II - Input Array Is Sorted (M)
	- https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/solutions/3433544/two-pointers/
Sat:
- First Bad Version (E)
	- https://leetcode.com/problems/first-bad-version/solutions/3433561/binary-search-template/
- Search a 2D Matrix II (M)
- Sqrt(x) (E)
- Search Insert Position (E)
Sun:
- Intersection of Two Arrays (E)
- Shortest Subarray to be Removed to Make Array Sorted (M)
- Fair Candy Swap (E)
	- https://leetcode.com/problems/fair-candy-swap/solutions/3442225/brute-force-binary-search-hashmap/
- Russian Doll Envelopes (H)

Trie (2 weeks)

Mon:
- Design File System (M)
	- https://leetcode.com/problems/design-file-system/solutions/3442273/simple-hashmap-implementation/
- Search Suggestions System (M)
	- https://leetcode.com/problems/search-suggestions-system/solutions/3469051/trie-dfs/
Tue:
- Number of Matching Subsequences (M)
- Word Break (M)
Wed:
- Top K Frequent Words (M)
- Implement Trie (Prefix Tree) (M)
Thur:
- Maximum XOR of Two Numbers in an Array (M)
- Add Bold Tag in String (M)
Fri:
- Lexicographical Numbers (M)
- Design Add and Search Words Data Structure (M)
Sat:
- Camelcase Matching (M)
	- https://leetcode.com/problems/camelcase-matching/solutions/3468820/two-pointers/
- Replace Words (M)
Sun:
- Longest Word in Dictionary (M)
- Implement Magic Dictionary (M)
Mon:
- Bold Words in String (M)
- Short Encoding of Words (M)
Tue:
- Longest Word With All Prefixes (M)
- K Divisible Elements Subarrays (M)
Wed:
- Number of Distinct Substrings in a String (M)
Thur:
- Implement Trie II (Prefix Tree) (M)
- Remove Sub-Folders from the Filesystem (M)
Fri:
- Map Sum Pairs (M)
- Index Pairs of a String (E)
Sat:
- Word Search II (H)
- Word Break II (H)
Sun:
- Design Search Autocomplete System (H)
- Design In-Memory File System (H)

Graphs (2 weeks)

Mon:
- Evaluate Division (M)
	- https://leetcode.com/problems/evaluate-division/solutions/3494581/graph-traversal-using-dfs/
- Course Schedule (M)
	- https://leetcode.com/problems/course-schedule/solutions/3480510/topological-sort-using-bfs/
Tue:
- Most Stones Removed with Same Row or Column (M)
- Course Schedule II (M)
Wed:
- Satisfiability of Equality Equations (M)
- Possible Bipartition (M)
	- https://leetcode.com/problems/possible-bipartition/solutions/3495005/graph-coloring/
Thur:
- Find All Possible Recipes from Given Supplies (M)
- Regions Cut By Slashes (M)
	- https://leetcode.com/problems/regions-cut-by-slashes/solutions/3494100/upscale-the-graph/
Fri:
- Is Graph Bipartite? (M)
	- https://leetcode.com/problems/is-graph-bipartite/solutions/3494512/graph-coloring/
- Keys and Rooms (M)
	- https://leetcode.com/problems/keys-and-rooms/solutions/673964/bfs-and-dfs/
Sat:
- Cheapest Flights Within K Stops (M)
- Network Delay Time (M)
- The Maze (M)
Sun:
- Detonate the Maximum Bombs (M)
- Find Closest Node to Given Two Nodes (M)
	- https://leetcode.com/problems/find-closest-node-to-given-two-nodes/solutions/3518295/dfs-twice-using-distances-recursive-iterative/?orderBy=most_votes
- Clone Graph (M)
	- https://leetcode.com/problems/clone-graph/solutions/3521812/dfs-twice-one-for-keys-and-another-for-neighbors/
- Redundant Connection (M)
	- https://leetcode.com/problems/redundant-connection/solutions/652258/brute-force-dfs-clever-dfs-union-and-find-w-explanations/
Mon:
- Number of Provinces (M)
- Find the Celebrity (M)
Tue:
- Number of Connected Components in an Undirected Graph (M)
	- https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph/solutions/3524755/dfs-same-as-count-islands/
- Maximal Network Rank (M)
	- https://leetcode.com/problems/maximal-network-rank/solutions/3524985/build-graph-then-compare-all-possible-node-pairs/
Wed:
- Parallel Courses (M)
	- https://leetcode.com/problems/parallel-courses/solutions/3524725/topological-sort-using-bfs/
- Minimum Height Trees (M)
	- https://leetcode.com/problems/minimum-height-trees/solutions/3525044/brute-force-topological-sort/
Thur:
- Number of Operations to Make Network Connected (M)
- Graph Valid Tree (M)
Fri:
- All Ancestors of a Node in a Directed Acyclic Graph (M)
- Find if Path Exists in Graph (E)
Sat:
- Alien Dictionary (H)
- Find the Town Judge (E)
- Design Excel Sum Formula (H)
Sun:
- Parallel Courses II (H)
- Find the City With the Smallest Number of Neighbors at a Threshold Distance (M)
- Shortest Path with alternating colors (M)

1-DP, 2-DP (.5 week + 1.5 weeks)

Mon:
- Climbing Stairs 
	- https://leetcode.com/problems/climbing-stairs/solutions/3529081/o-n-time-and-explanation-going-from-o-n-o-1-space/
- Min Cost Climbing Stairs  
Tue:
- House Robber  
	- https://leetcode.com/problems/house-robber/solutions/3540441/recursion-recursion-w-caching-td-bottom-up-dp/
- House Robber II 
Wed:
- Longest Palindromic Substring 
- Palindromic Substrings  
Thur:
- Decode Ways 
- Coin Change 
Fri:
- Maximum Product Subarray  
- Word Break  
Sat:
- Longest Increasing Subsequence  
- Partition Equal Subset Sum
- Sum of Subarray Minimums (M)
- Number of Dice Rolls With Target Sum (M)
Sun:
- Unique Paths  
- Longest Common Subsequence  
	- https://leetcode.com/problems/longest-common-subsequence/solutions/3544952/brute-force-memoization-bottom-up-dp/
- Best Time to Buy And Sell Stock With Cooldown 
- Coin Change II
Mon:
- Target Sum
- Interleaving String
Tue:
- Maximum Subarray (M)
- Generate Parentheses (M)
Wed:
- Maximum Length of Repeated Subarray (M)
- Binary Trees With Factors (M)
Thur:
- Jump Game (M)
- Push Dominoes (M)
Fri:
- Longest Increasing Subsequence (M)
- Perfect Squares (M)
Sat:
- Edit Distance 
- Burst Balloons  
- Regular Expression Matching
- Jump Game II (M)
Sun:
- Longest Increasing Path In a Matrix 
- Distinct Subsequences 
- Minimum Time to Make Rope Colorful (M)
- Word Break (M)

System Design (1 month - In combination with 1 random previously solved LC problem above per day)
Pastebin (2 days) <--------
Distributed ID Generator (2 days)
Distributed Cache (2 days)
Notification System (2 days)
Twitter / FB Timeline / Instagram (2 days)
Payment System (2 days)
Uber / Food Delivery Apps (2 days)
Web Crawler (2 days)
Typeahead (2 days)
Top K Products (2 days)
Netflix / Youtube / Disney+ and streaming services (2 days)
Metric Monitoring System (2 days)
Chat System (2 days)

Study Guide: https://leetcode.com/discuss/general-discussion/665604/important-and-useful-links-from-all-over-the-Leetcode

Comments (1)