Grokking the Technical Interview
Grokking the Technical Interview
Grokking the Technical Interview that makes the promise that it will teach you the patterns, strategies, and best practices required to respond to typical coding interview questions. Depending on your unique situation and objectives, it may or may not be worthwhile, however there are a few things to think about:
- If you are are Expert or Junior Developer you must prepare yourself this kind of problems. Practice make perfect so that reason you should solve this problems at monthly.
- Make your own technical interview studies notes. Append the new solution to your notes.
- In this document is Step Zero. This give the basic roadmap.
- Before start reading you should learn Big O
Notation and how important from Computer Science.
๐ก Tips
๐ Fundamental Concepts
- Algorithmic Complexity
- Big-O Cheat Sheet
- Bit Manipulation Techniques
- Sorting Algorithms
- Linked List
- Dummy Node Technique
- Queues
- Stacks
- Hash Tables
- Heaps
- Recursion
- Backtracking
- Trees
- Tries
- Binary Search
- Greedy Algorithm
- Dynamic Programming
- Graph Theory
- Important Graph Algorithms
- DFS Traversal
- BFS Traversal
- Union-Find
- Dijkstra Algorithm
- Minimum Spanning Tree
Step Zero -Patterns
- ๐๐ฎ๐๐ฌ๐ญ๐ซ๐ข๐ง๐ ๐๐ซ๐จ๐๐ฅ๐๐ฆ ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
2) ๐๐ฅ๐ข๐๐ข๐ง๐ ๐๐ข๐ง๐๐จ๐ฐ ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
3) ๐๐ฐ๐จ ๐๐จ๐ข๐ง๐ญ๐๐ซ๐ฌ ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
https://leetcode.com/discuss/study-guide/1688903/Solved-all-two-pointers-problems-in-100-days
4) ๐๐๐๐ค๐ญ๐ซ๐๐๐ค๐ข๐ง๐ ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
https://medium.com/leetcode-patterns/leetcode-pattern-3-backtracking-5d9e5a03dc26
5) ๐๐ฒ๐ง๐๐ฆ๐ข๐ ๐๐ซ๐จ๐ ๐ซ๐๐ฆ๐ฆ๐ข๐ง๐ ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ 1:
https://leetcode.com/discuss/study-guide/458695/Dynamic-Programming-Patterns
6) ๐๐ฒ๐ง๐๐ฆ๐ข๐ ๐๐ซ๐จ๐ ๐ซ๐๐ฆ๐ฆ๐ข๐ง๐ ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ 2:
https://leetcode.com/discuss/study-guide/1437879/Dynamic-Programming-Patterns
7) ๐๐ข๐ง๐๐ซ๐ฒ ๐๐๐๐ซ๐๐ก ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
8) ๐๐๐๐ค๐ญ๐ซ๐๐๐ค๐ข๐ง๐ ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
9) ๐๐ซ๐๐ ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
10) ๐๐ซ๐๐ฉ๐ก ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
11) ๐๐จ๐ง๐จ๐ญ๐จ๐ง๐ข๐ ๐๐ญ๐๐๐ค ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
12) ๐๐ข๐ญ ๐๐๐ง๐ข๐ฉ๐ฎ๐ฅ๐๐ญ๐ข๐จ๐ง ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
13) ๐๐ญ๐ซ๐ข๐ง๐ ๐๐ฎ๐๐ฌ๐ญ๐ข๐จ๐ง ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
https://leetcode.com/discuss/study-guide/2001789/Collections-of-Important-String-questions-Pattern
14) ๐๐ ๐ + ๐๐ ๐ ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ (1):
15) ๐๐ ๐ + ๐๐ ๐ ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ (2):
16) 14 ๐๐จ๐๐ข๐ง๐ ๐๐ง๐ญ๐๐ซ๐ฏ๐ข๐๐ฐ ๐๐๐ญ๐ญ๐๐ซ๐ง๐ฌ:
https://hackernoon.com/14-patterns-to-ace-any-coding-interview-question-c5bb3357f6ed
Additional Resources
๐ Patterns
- 15 Leetcode Patterns
- 20 DP Patterns
- Prefix Sum Pattern
- Two Pointers Pattern
- Linked List In-place Reversal Pattern
- Sliding Window Pattern
- Top โKโ Elements Pattern
- Monotonic Stack Pattern
- Overlapping Intervals Pattern
- Backtracking Pattern
- Modified Binary Search Pattern
- Tree Patterns
- Tree Iterative Traversal
- Tree Question Pattern
- Graph Patterns
- DFS + BFS Patterns (1)
- DFS + BFS Patterns (2)
๐ Must-Read Leetcodeย Articles
- Sliding Window Template
- Two Pointers Patterns
- Collections of Important String Questions
- Substring Problem Template
- Binary Search Template
- A General Approach to Backtracking Questions
- Monotonic Stack Template
- Heap Patterns
- Bit Manipulation Patterns
- Dynamic Programming Patterns
- Stock Series Patterns
๐บ YouTubeย Playlist
- Abdul Bariโs Algorithms Playlist
- William Fisetโs Data Structure Playlist
- William Fisetโs Graphs Playlist
- Tushar Royโs Dynamic Programming Playlist
๐ Courses
๐ Books
๐ Visualization
๐ LeetCode Extensions
- LeetCode Timer: Easily time your leetcode practise sessions with automatic time setting based on difficulty.
- LeetCode Video Solutions: Watch free LeetCode video โถ solutions on the problem page itself.
- LeetCode Format: Adds Format code button on leetcode to format the code using Prettier code formatter.
- LeetHub v2: Automatically integrate your Leetcode & GeeksforGeeks submissions to GitHub.
- LeetCode VS Code Extension: Solve LeetCode problems in VS Code.
โ Curatedย Problems
๐ป Must-Do Problems (Topicย Wise)
Linked List
- Reverse Linked List
- Linked List Cycle
- Merge Two Sorted Lists
- Intersection of Two Linked Lists
- Remove Nth Node From End of List
- Add Two Numbers
- Copy List with Random Pointer
- Flatten a Multilevel Doubly Linked List
- Rotate List
- Sort List
- Remove Duplicates from Sorted List II
- LRU Cache
- Design Browser History
- Merge k Sorted Lists
- Reverse Nodes in k-Group
Binary Trees
- Invert Binary Tree
- Convert Sorted Array to Binary Search Tree
- Count Complete Tree Nodes
- All Possible Full Binary Trees
- Delete Leaves With a Given Value
- Binary Search Tree Iterator
- Longest Univalue Path
- Delete Nodes And Return Forest
- Validate Binary Search Tree
- Construct Binary Tree from Inorder and Postorder Traversal
- All Nodes Distance K in Binary Tree
- Maximum Difference Between Node and Ancestor
- Find Duplicate Subtrees
- Flatten Binary Tree to Linked List
- House Robber III
- Step-By-Step Directions From a Binary Tree Node to Another
- Delete Node in a BST
- Populating Next Right Pointers in Each Node II
- Trim a Binary Search Tree
- Distribute Coins in Binary Tree
- Binary Search Tree to Greater Sum Tree
- Serialize and Deserialize Binary Tree
- Binary Tree Cameras
- Binary Tree Maximum Path Sum
- Maximum Sum BST in Binary Tree
Backtracking
- Permutations
- Subsets
- Generate Parentheses
- Combination Sum
- Palindrome Partitioning
- Letter Combinations of a Phone Number
- Unique Binary Search Trees II
- Partition to K Equal Sum Subsets
- N-Queens II
- Sudoku Solver
Tries
- Implement Trie (Prefix Tree)
- Longest Common Prefix
- Search Suggestions System
- Longest Word in Dictionary
- Top K Frequent Words
- Design Add and Search Words Data Structure
- Implement Magic Dictionary
- Replace Words
- Word Search II
- Stream of Characters
Your contributions are most welcome!
Making a conclusion
๐จโ๐ฆโ๐ฆ Leave a comment, I am free for discussion with your any kind technical question.