# Algorithm # Day 1 - [ ] Read [How to answer a coding interview.](https://medium.com/@nhudinhtuan/how-to-answer-a-coding-interview-question-f3e705bb9fcd) - [ ] Read [Using sliding window technique to solve coding interview questions.](https://medium.com/swlh/using-sliding-window-technique-to-solve-coding-interview-questions-248b67ae3c44) - [ ] Practice coding Array 1 [Two Sum](https://leetcode.com/problems/two-sum/) - [ ] Practice coding Array 2 [Three Sum](https://leetcode.com/problems/3sum/) - [ ] Practice coding Array 3 [Max Consecutive Ones III](https://leetcode.com/problems/max-consecutive-ones-iii/) - [ ] Practice coding Array 4 [Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray/) # Day 2 - [ ] Read [Using state machine to solve complex coding interview questions.](https://medium.com/@nhudinhtuan/using-state-machine-to-solve-complex-coding-interview-questions-2b8897e23582) - [ ] Practice coding Array 5 [Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray/) - [ ] Practice coding Array 6 [Next Permutation](https://leetcode.com/problems/next-permutation/) - [ ] Practice coding String 1 [Valid Number](https://leetcode.com/problems/valid-number/) - [ ] Practice coding String 2 [Valid Parentheses](https://leetcode.com/problems/valid-parentheses/) # Day 3 - [ ] Read [Trie data structure cheat sheet for coding interviews.](https://medium.com/@nhudinhtuan/trie-data-structure-cheat-sheet-for-coding-interviews-a828fd374b84) - [ ] Practice coding String 3 [Palindromic Substrings](https://leetcode.com/problems/palindromic-substrings/) - [ ] Practice coding String 4 [Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/) - [ ] Practice coding String 5 [Longest Substring with At Most K Distinct Characters](https://leetcode.com/problems/longest-substring-with-at-most-k-distinct-characters/) - [ ] Practice coding String 6 [Design Search Autocomplete System](https://leetcode.com/problems/design-search-autocomplete-system/) # Day 4 - [ ] Read [Binary tree traversals cheat sheet for coding interviews.](https://medium.com/@nhudinhtuan/binary-tree-traversals-cheat-sheet-for-coding-interviews-a71af9fe1dba) - [ ] Practice coding String 7 [Longest Repeating Character Replacement](https://leetcode.com/problems/longest-repeating-character-replacement/) - [ ] Practice coding Tree 1 [Populating Next Right Pointers in Each Node](https://leetcode.com/problems/populating-next-right-pointers-in-each-node/) - [ ] Practice coding Tree 2 [Binary Search Tree Iterator](https://leetcode.com/problems/binary-search-tree-iterator/) - [ ] Practice coding Tree 3 [Serialize and Deserialize Binary Tree](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/) # Day 5 - [ ] Read [Graph data structure cheat sheet for coding interviews.](https://medium.com/@nhudinhtuan/graph-data-structure-cheat-sheet-for-coding-interviews-a38aadf8aa87) - [ ] Practice coding Tree 4 [Lowest Common Ancestor of a Binary Search Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) - [ ] Practice coding Tree 5 [Kth Smallest Element in a BST](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) - [ ] Practice coding Tree 6 [Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree/) - [ ] Practice coding Graph 1 [Clone Graph](https://leetcode.com/problems/clone-graph/) # Day 6 - [ ] Practice coding Graph 2 [Course Schedule II](https://leetcode.com/problems/course-schedule-ii/) - [ ] Practice coding Graph 3 [Number of Islands](https://leetcode.com/problems/number-of-islands/) - [ ] Practice coding Graph 4 [Number of Connected Components in an Undirected Graph](https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph/) - [ ] Practice coding Graph 5 [Graph Valid Tree](https://leetcode.com/problems/graph-valid-tree/) - [ ] Practice coding Graph 6 [Reconstruct Itinerary](https://leetcode.com/problems/reconstruct-itinerary/) # Day 7 - [ ] Read [Using a Stack to Evaluate an Expression.](http://faculty.cs.niu.edu/~hutchins/csci241/eval.htm) - [ ] Practice coding Graph 7 [Cheapest Flights Within K Stops](https://leetcode.com/problems/cheapest-flights-within-k-stops/) - [ ] Practice coding Graph 8 [Alien Dictionary](https://leetcode.com/problems/alien-dictionary/) - [ ] Practice coding Stack 1 [Basic Calculator III](https://leetcode.com/problems/basic-calculator-iii/) - [ ] Practice coding Stack 2 [Next Greater Element II](https://leetcode.com/problems/next-greater-element-ii/) # Day 8 - [ ] Read [Binary search cheat sheet for coding interviews.](https://medium.com/@nhudinhtuan/binary-search-cheat-sheet-for-coding-interviews-9c5425af357e) - [ ] Practice coding Binary Search 1 [Search in Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array/) - [ ] Practice coding Binary Search 2 [Find Minimum in Rotated Sorted Array II](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/) - [ ] Practice coding Binary Search 3 [Single Element in a Sorted Array](https://leetcode.com/problems/single-element-in-a-sorted-array/) - [ ] Practice coding Binary Search 4 [Find K Closest Elements](https://leetcode.com/problems/find-k-closest-elements/) # Day 9 - [ ] Read [How to answer a system design interview question.](https://medium.com/@nhudinhtuan/work-through-my-solution-to-a-system-design-interview-question-a8ea4b60513b) - [ ] Practice coding Binary Search 5 [Median of Two Sorted Arrays](https://leetcode.com/problems/median-of-two-sorted-arrays/) - [ ] Practice coding Priority Queue 1 [Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/) - [ ] Practice coding Priority Queue 2 [Merge k Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/) # Day 10 - [ ] Read [Confusing terms in system design.](https://medium.com/@nhudinhtuan/confusing-terms-in-system-design-concurrency-vs-parallelism-performance-vs-scalability-proxy-vs-e3717b3bd81e) - [ ] Practice coding Linked List 1 [Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/) - [ ] Practice coding Linked List 2 [Linked List Cycle](https://leetcode.com/problems/linked-list-cycle/) - [ ] Practice coding Linked List 3 [Merge k Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/) - [ ] Practice coding Linked List 4 [Remove Nth Node From End of List](https://leetcode.com/problems/remove-nth-node-from-end-of-list/) # Day 11 - [ ] Read [Scalable Web Architecture and Distributed Systems](http://www.aosabook.org/en/distsys.html) - [ ] Practice designing a Web Crawler - [ ] Practice coding Linked List 5 [Reorder List](https://leetcode.com/problems/reorder-list/) - [ ] Practice coding Backtrack 1 [Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number/) # Day 12 - [ ] Watch [How Slack Works](https://www.youtube.com/watch?v=WE9c9AZe-DY) - [ ] Practice designing Facebook Messenger - [ ] Practice coding Backtrack 2 [Generate Parentheses](https://leetcode.com/problems/generate-parentheses/) - [ ] practice coding Backtrack 3 [N-Queens](https://leetcode.com/problems/n-queens/) - [ ] practice coding Backtrack 4 [Regular Expression Matching](https://leetcode.com/problems/regular-expression-matching/) # Day 13 - [ ] Watch [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability/) - [ ] Practice designing Designing Facebook’s Newsfeed - [ ] Practice coding Backtrack 5 [Permutations](https://leetcode.com/problems/permutations/) - [ ] Practice coding Dynamic Programming 1 [Climbing Stairs](https://leetcode.com/problems/climbing-stairs/) - [ ] Practice coding Dynamic Programming 2 [Coin Change](https://leetcode.com/problems/coin-change/) # Day 14 - [ ] Read [Behavioral Based Job Interview Questions.](https://www.thebalancecareers.com/behavioral-job-interview-questions-2059620) - [ ] Practice designing Uber backend - [ ] Practice coding Dynamic Programming 3 [Longest Common Subsequence](https://leetcode.com/problems/longest-common-subsequence/) - [ ] Practice coding Dynamic Programming 4 [Word Break](https://leetcode.com/problems/word-break/) # Day 15 - [ ] Practice [10 Common Behavioral Interview Questions](https://www.thebalancecareers.com/top-behavioral-interview-questions-2059618) - [ ] Practice designing Youtube or Netflix - [ ] Practice coding Dynamic Programming 5 [Jump Game](https://leetcode.com/problems/jump-game/) - [ ] Practice coding Dynamic Programming 6 [Decode Ways](https://leetcode.com/problems/decode-ways/)