🎯 Google-Ready 100 — শূন্য থেকে interview + job-ready পথ¶
এই repo-র 446 problem থেকে বেছে নেওয়া ঠিক ১০০টা — যাতে একদম শূন্য থেকে শুরু করা একজন learner ধাপে ধাপে এমন জায়গায় পৌঁছায় যেখান থেকে Google/FAANG interview দেওয়া যায়, আর একই সাথে real job-এ কাজ করার মতো pattern হাতে আসে।
নীতি: প্রতিটা গুরুত্বপূর্ণ pattern একবার করে, তার সবচেয়ে canonical problem দিয়ে। duplicate নেই, fluff নেই — শুধু যেগুলো বারবার interview-তে আর production-এ ফিরে আসে।
কীভাবে ব্যবহার করবে¶
- ক্রম ধরে এগোও (Stage 1 → 14)। প্রতিটা stage আগেরটার উপর দাঁড়ায়।
- প্রতিটা problem-এর full Bangla note + Python + JavaScript + TypeScript solution + test cases + real-world use ওই problem-এর
.mdfile-এ (link দেওয়া আছে)। - প্রতিদিন 2–4টা; একটা problem মানে শুধু solve নয় — pattern-টা মুখে বলে বোঝা।
- কোনোটায় আটকালে brute force → optimize ধাপটা note-এ আছে, ওটা পড়ো।
Difficulty: 🟢 Easy · 🟡 Medium · 🔴 Hard Status: ✅ = JS+TS+test+use-case যোগ করা হয়ে গেছে · ⬜ = বাকি
Stage 1 — Math ও Number Foundations (8)¶
%, digit loop, prime, gcd/lcm, modular power — সব pattern-এর শিকড়।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 1 | Even or Odd | 🟢 | parity, %, bit |
প্রথম pattern; sharding/parity bit | ✅ |
| 2 | Sum of Digits | 🟢 | digit extraction loop | checksum/Luhn-এর ভিত্তি | ✅ |
| 3 | Count Digits | 🟢 | digit loop, log10 | validation/padding | ✅ |
| 4 | Check Prime | 🟢 | trial division √n | crypto/number theory গেট | ✅ |
| 5 | Sieve of Eratosthenes | 🟡 | sieve precompute | bulk prime, precomputation mindset | ✅ |
| 6 | GCD (Euclidean) | 🟢 | Euclid recursion | fractions, scheduling | ✅ |
| 7 | LCM using GCD | 🟢 | gcd→lcm relation | cycles, overflow-safe math | ✅ |
| 8 | Modular Exponentiation | 🟡 | fast power O(log n) | crypto, hashing, big powers | ✅ |
Stage 2 — Bit Manipulation ও Prefix Sums (5)¶
দুই সুপারপাওয়ার: bit দিয়ে O(1) trick, prefix দিয়ে O(1) range query।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 9 | Count Set Bits | 🟢 | Brian Kernighan | flags, popcount | ✅ |
| 10 | Power of Two | 🟢 | n & (n-1) |
capacity, hashmap sizing | ✅ |
| 11 | Single Number (XOR) | 🟢 | XOR cancel | dedupe, checksum | ✅ |
| 12 | Prefix Sum | 🟢 | prefix array | O(1) range sum, analytics | ✅ |
| 13 | Subarray Sum Equals K | 🟡 | prefix + hashmap | count ranges; super common | ✅ |
Stage 3 — Binary Search (incl. on answer) (5)¶
sorted-এ খোঁজা থেকে "উত্তরের উপর binary search" — Google-এর প্রিয়।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 14 | Basic Binary Search | 🟢 | classic BS | সব search-এর ভিত্তি | ✅ |
| 15 | Lower / Upper Bound | 🟡 | boundary BS | DB index, std::lower_bound | ✅ |
| 16 | Square Root (BS) | 🟢 | BS on value | precision search | ✅ |
| 17 | Koko Eating Bananas | 🟡 | BS on answer | rate-limit/capacity tuning | ✅ |
| 18 | Allocate Minimum Pages | 🔴 | BS on answer + feasibility | load balancing, sharding | ✅ |
Stage 4 — Arrays ও Strings core (11)¶
interview-এর সবচেয়ে বড় ভাগ; এখানেই two-pointer, Kadane, prefix-product।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 19 | Reverse String | 🟢 | two pointers | in-place basics | ✅ |
| 20 | Two Sum | 🟢 | hashmap complement | #1 interview problem | ✅ |
| 21 | Valid Anagram | 🟢 | frequency count | string fingerprint | ✅ |
| 22 | Move Zeroes | 🟢 | slow/fast pointer | in-place partition | ✅ |
| 23 | Best Time Buy/Sell Stock | 🟢 | running min | streaming min/max | ✅ |
| 24 | Maximum Subarray (Kadane) | 🟡 | Kadane DP | signal/profit windows | ✅ |
| 25 | Container With Most Water | 🟡 | two pointers | greedy discard | ✅ |
| 26 | Rotate Array | 🟡 | reversal trick | buffer/ring shift | ✅ |
| 27 | Product Except Self | 🟡 | prefix/suffix product | running aggregates | ✅ |
| 28 | 3Sum | 🟡 | sort + two pointers | dedupe triples | ✅ |
| 29 | Longest Consecutive Sequence | 🟡 | hash set | O(n) without sort | ✅ |
Stage 5 — Hashing (5)¶
"আগে দেখেছি কিনা" — O(1) lookup-এর জাদু।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 30 | Contains Duplicate | 🟢 | hash set | dedupe everywhere | ✅ |
| 31 | First Unique Character | 🟢 | frequency map | stream first-unique | ✅ |
| 32 | Missing Number | 🟢 | XOR/sum trick | integrity check | ✅ |
| 33 | Group Anagrams | 🟡 | canonical key bucket | grouping/indexing | ✅ |
| 34 | Top K Frequent Elements | 🟡 | count + heap/bucket | trending/analytics | ✅ |
Stage 6 — Two Pointers ও Sliding Window (6)¶
contiguous window — substring, rate, throughput সব এখানে।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 35 | Longest Substring w/o Repeat | 🟡 | sliding window + set | dedupe window | ✅ |
| 36 | Minimum Size Subarray Sum | 🟡 | shrinkable window | min window meeting target | ✅ |
| 37 | At Most K Distinct | 🟡 | window + counts | "at most/exactly K" trick | ✅ |
| 38 | Minimum Window Substring | 🔴 | window + need-map | hard window mastery | ✅ |
| 39 | Trapping Rain Water | 🔴 | two pointers / prefix max | classic hard | ✅ |
| 40 | Sliding Window Maximum | 🔴 | monotonic deque | streaming max | ✅ |
Stage 7 — Stack ও Queue (7)¶
nesting, monotonic stack, "next greater" — parser ও scheduler-এর হাতিয়ার।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 41 | Valid Parentheses | 🟢 | stack matching | parser/compiler basics | ✅ |
| 42 | Min Stack | 🟡 | aux stack | O(1) min design | ✅ |
| 43 | Queue via Stacks | 🟢 | amortized design | data-structure design | ✅ |
| 44 | Next Greater Element | 🟡 | monotonic stack | stock span, histograms | ✅ |
| 45 | Daily Temperatures | 🟡 | monotonic stack | wait-time problems | ✅ |
| 46 | Evaluate RPN | 🟡 | stack eval | expression engines | ✅ |
| 47 | Largest Rectangle in Histogram | 🔴 | monotonic stack | hard stack peak | ✅ |
Stage 8 — Linked List (7)¶
pointer surgery — reverse, cycle, merge; design (LRU)।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 48 | Reverse Linked List | 🟢 | pointer rewiring | #1 LL skill | ✅ |
| 49 | Merge Two Sorted Lists | 🟢 | two-pointer merge | merge-sort building block | ✅ |
| 50 | Linked List Cycle | 🟢 | Floyd fast/slow | cycle detection | ✅ |
| 51 | Middle of List | 🟢 | fast/slow | split for merge-sort | ✅ |
| 52 | Remove Nth From End | 🟡 | two-pointer gap | one-pass delete | ✅ |
| 53 | Palindrome Linked List | 🟡 | reverse half | O(1) space check | ✅ |
| 54 | LRU Cache | 🟡 | hashmap + DLL design | real cache (Redis-style) | ✅ |
Stage 9 — Recursion ও Backtracking (7)¶
"সব সম্ভাবনা" তৈরি — subsets, permutations, grid search।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 55 | Fibonacci (recursion→memo) | 🟢 | recursion + memo | DP-র গেটওয়ে | ✅ |
| 56 | Climbing Stairs | 🟢 | recurrence | counting paths | ✅ |
| 57 | Subsets | 🟡 | backtracking power set | combinations engine | ✅ |
| 58 | Permutations | 🟡 | backtracking + used | ordering/scheduling | ✅ |
| 59 | Combination Sum | 🟡 | backtracking + prune | choose-with-repeat | ✅ |
| 60 | Generate Parentheses | 🟡 | constrained backtracking | valid-config generation | ✅ |
| 61 | Word Search | 🟡 | grid DFS + backtrack | board/maze search | ✅ |
Stage 10 — Trees ও BST (10)¶
traversal, BFS/DFS, BST property, LCA, serialize — interview heartland।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 62 | Maximum Depth | 🟢 | DFS recursion | tree recursion basics | ✅ |
| 63 | Inorder Traversal | 🟢 | DFS / stack | BST sorted order | ✅ |
| 64 | Invert Binary Tree | 🟢 | recursion | famous warm-up | ✅ |
| 65 | Symmetric Tree | 🟢 | mirror recursion | structural compare | ✅ |
| 66 | Level Order Traversal | 🟡 | BFS queue | layer processing | ✅ |
| 67 | Validate BST | 🟡 | bounds recursion | invariant checking | ✅ |
| 68 | Kth Smallest in BST | 🟡 | inorder + count | order statistics | ✅ |
| 69 | LCA of Binary Tree | 🟡 | post-order recursion | hierarchy queries | ✅ |
| 70 | Diameter of Binary Tree | 🟡 | height + global max | tree DP pattern | ✅ |
| 71 | Serialize/Deserialize Tree | 🔴 | DFS encode/decode | storage/transmission | ✅ |
Stage 11 — Heap / Priority Queue (5)¶
"top/kth/median" — streaming-এ সেরা।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 72 | Kth Largest Element | 🟡 | min-heap size k | order statistics | ✅ |
| 73 | K Closest Points | 🟡 | heap by distance | nearest-neighbour | ✅ |
| 74 | Task Scheduler | 🟡 | greedy + heap | CPU/job scheduling | ✅ |
| 75 | Meeting Rooms II | 🟡 | heap of end-times | resource allocation | ✅ |
| 76 | Find Median from Data Stream | 🔴 | two heaps | streaming median | ✅ |
Stage 12 — Graphs (10)¶
BFS/DFS, topological sort, shortest path — সিস্টেম-চিন্তার মূল।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 77 | Number of Islands | 🟡 | grid DFS/BFS | connected components | ✅ |
| 78 | Flood Fill | 🟢 | DFS/BFS | paint bucket, segmentation | ✅ |
| 79 | Rotting Oranges | 🟡 | multi-source BFS | spread/diffusion | ✅ |
| 80 | Clone Graph | 🟡 | DFS + hashmap | deep copy graphs | ✅ |
| 81 | Is Graph Bipartite | 🟡 | 2-coloring BFS | conflict/grouping | ✅ |
| 82 | Course Schedule | 🟡 | cycle detect (topo) | dependency resolution | ✅ |
| 83 | Course Schedule II | 🟡 | topological order | build systems, DAG | ✅ |
| 84 | Word Ladder | 🔴 | BFS shortest path | transformation search | ✅ |
| 85 | Network Delay Time | 🟡 | Dijkstra | weighted shortest path | ✅ |
| 86 | Alien Dictionary | 🔴 | topo sort (hard) | ordering inference | ✅ |
Stage 13 — Union-Find / DSU (3)¶
"এরা কি একই দলে?" — connectivity-র দ্রুততম উত্তর।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 87 | Redundant Connection | 🟡 | DSU cycle | network/tree validation | ✅ |
| 88 | Make Network Connected | 🟡 | DSU components | infra connectivity | ✅ |
| 89 | Accounts Merge | 🔴 | DSU + map | entity resolution/dedupe | ✅ |
Stage 14 — Dynamic Programming (11)¶
overlapping subproblems — interview-এর সবচেয়ে ভয়ের, কিন্তু pattern শিখলে সহজ।
| # | Problem | Diff | Pattern / Skill | কেন জরুরি | Status |
|---|---|---|---|---|---|
| 90 | House Robber | 🟡 | 1D DP | pick/skip pattern | ✅ |
| 91 | Unique Paths | 🟡 | grid DP | counting paths | ✅ |
| 92 | Minimum Path Sum | 🟡 | grid DP min | cost optimization | ✅ |
| 93 | Coin Change (min) | 🟡 | unbounded knapsack | make-change/optimization | ✅ |
| 94 | 0/1 Knapsack (Book Shop) | 🟡 | 0/1 knapsack | budget/resource picking | ✅ |
| 95 | Partition Equal Subset Sum | 🟡 | subset-sum DP | balancing/fairness | ✅ |
| 96 | Longest Increasing Subsequence | 🟡 | LIS DP | sequence trends | ✅ |
| 97 | Word Break | 🟡 | string DP | tokenization/parsing | ✅ |
| 98 | Longest Common Subsequence | 🟡 | 2D DP | diff, DNA, similarity | ✅ |
| 99 | Edit Distance | 🔴 | 2D DP | spellcheck, diff, fuzzy match | ✅ |
| 100 | Burst Balloons | 🔴 | interval DP | hardest DP class | ✅ |
🏁 Milestones¶
- Stage 1–3 শেষ (18): math + binary search ভিত্তি দখলে — অনেক easy interview এখনই পারবে।
- Stage 4–7 শেষ (47): arrays/strings/hashing/stack — job-ready interview-এর core।
- Stage 8–11 শেষ (76): LL + recursion + trees + heap — mid-level interview-ready।
- Stage 12–14 শেষ (100): graphs + DSU + DP — Google/FAANG on-site দেওয়ার মতো।
পরের ধাপ (এই path-এর সাথে যা চলবে)¶
- প্রতিদিন রুটিন: 2–4টা problem + আগেরগুলো দ্রুত review।
- প্রতি stage শেষে: pattern-টা নিজে এক প্যারায় লিখে ফেলা (note-এর "Pattern learned" দেখে)।
- System Design + behavioral (Google-এর জন্য) — DSA-র পাশাপাশি, web-dev roadmap-এর Phase 10-এ।
নোট: এই 100-র প্রতিটা problem-এর
.md-তে এখন Python + JavaScript + TypeScript solution + test cases + real-world use যোগ করা হয়ে গেছে — ১০০/১০০ ✅। সব JavaScriptnode-এ চলে (test pass), সব TypeScripttsc --strict-এ type-check pass — sandbox-এ স্বাধীনভাবে যাচাই করা।