Hashing — Problem Tracker¶
এটা hashing folder-এর practice ledger। উপর থেকে নিচে কাজ করো: list-টা easy → hard সাজানো, আর প্রতিটা row বলে দেয় কোন pattern drill হচ্ছে আর আগের কোন idea থেকে সেটা inherit করছে। কোনো problem solve করলে তার Status বদলাও আর ../../templates/ds-problem-note-template.md-র 24-section template দিয়ে একটা পুরো note file লেখো — note file-এর নাম "Note file" column-এ আগেই reserve করা আছে। এক বসায় একটা problem, তাড়াহুড়োয় পাঁচটার চেয়ে ভালো: লক্ষ্য হলো পরের বার pattern-টা চিনে ফেলা, table শেষ করা না।
নিচের সব problem statement শুধু official link দিয়ে reference করা; নিজের note-এ task-গুলো নিজের ভাষায় লেখো।
| # | Problem | Difficulty | Source | Pattern | Inherits from | Note file | Status |
|---|---|---|---|---|---|---|---|
| 1 | Two Sum — https://leetcode.com/problems/two-sum/ | Easy | LeetCode | Complement lookup | Frequency count + complement thinking | 001-two-sum.md | planned |
| 2 | Contains Duplicate — https://leetcode.com/problems/contains-duplicate/ | Easy | LeetCode | Seen-set | Complement lookup (partner = self) | 002-contains-duplicate.md | planned |
| 3 | Valid Anagram — https://leetcode.com/problems/valid-anagram/ | Easy | LeetCode | Frequency counting | Count arrays (../../01-math-based-programming-fundamentals/) | 003-valid-anagram.md | planned |
| 4 | Ransom Note — https://leetcode.com/problems/ransom-note/ | Easy | LeetCode | Frequency counting | Valid Anagram (count coverage) | 004-ransom-note.md | planned |
| 5 | First Unique Character in a String — https://leetcode.com/problems/first-unique-character-in-a-string/ | Easy | LeetCode | Frequency counting | Two-pass counting | 005-first-unique-character.md | planned |
| 6 | Intersection of Two Arrays — https://leetcode.com/problems/intersection-of-two-arrays/ | Easy | LeetCode | Seen-set | Set algebra (operations.md) | 006-intersection-two-arrays.md | planned |
| 7 | Missing Number — https://leetcode.com/problems/missing-number/ | Easy | LeetCode | Seen-set | Sum formula দিয়েও solve করা যায় (math section) | 007-missing-number.md | planned |
| 8 | Isomorphic Strings — https://leetcode.com/problems/isomorphic-strings/ | Easy | LeetCode | Grouping / mapping | Two synchronized dicts | 008-isomorphic-strings.md | planned |
| 9 | Two Sum II - Input Array Is Sorted — https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/ | Medium | LeetCode | Complement lookup vs two pointers | Two Sum (দুটো approach-ই তুলনা করো) | 009-two-sum-ii.md | planned |
| 10 | Group Anagrams — https://leetcode.com/problems/group-anagrams/ | Medium | LeetCode | Grouping by canonical key | Frequency counting | 010-group-anagrams.md | planned |
| 11 | Top K Frequent Elements — https://leetcode.com/problems/top-k-frequent-elements/ | Medium | LeetCode | Frequency counting | Counter + bucket idea | 011-top-k-frequent-elements.md | planned |
| 12 | Longest Consecutive Sequence — https://leetcode.com/problems/longest-consecutive-sequence/ | Medium | LeetCode | Seen-set + smart start | Contains Duplicate (set thinking) | 012-longest-consecutive-sequence.md | planned |
| 13 | Subarray Sum Equals K — https://leetcode.com/problems/subarray-sum-equals-k/ | Medium | LeetCode | Prefix sum + hash map | ../../01-math-based-programming-fundamentals/05-prefix-difference-contribution/ + Two Sum | 013-subarray-sum-equals-k.md | planned |
| 14 | Continuous Subarray Sum — https://leetcode.com/problems/continuous-subarray-sum/ | Medium | LeetCode | Prefix sum + hash map (mod) | Subarray Sum Equals K | 014-continuous-subarray-sum.md | planned |
| 15 | Valid Sudoku — https://leetcode.com/problems/valid-sudoku/ | Medium | LeetCode | Seen-set per unit | Canonical-key signatures | 015-valid-sudoku.md | planned |
| 16 | 4Sum II — https://leetcode.com/problems/4sum-ii/ | Medium | LeetCode | Complement lookup (pair sums) | Two Sum (pair-এ তোলা) | 016-4sum-ii.md | planned |
| 17 | Encode and Decode TinyURL — https://leetcode.com/problems/encode-and-decode-tinyurl/ | Medium | LeetCode | Hash as index accelerator | Dict as bidirectional registry | 017-encode-decode-tinyurl.md | planned |
| 18 | Sum of Two Values — https://cses.fi/problemset/ (CSES, task name: Sum of Two Values) | Medium | CSES | Complement lookup | CP input size-এ Two Sum | 018-cses-sum-of-two-values.md | planned |
| 19 | Repeated DNA Sequences — https://leetcode.com/problems/repeated-dna-sequences/ | Medium | LeetCode | Seen-set of windows / rolling-hash teaser | Seen-set + substring keys | 019-repeated-dna-sequences.md | planned |
| 20 | Minimum Window Substring — https://leetcode.com/problems/minimum-window-substring/ | Hard | LeetCode | Frequency counting + sliding window | Valid Anagram counts + arrays section-এর window | 020-minimum-window-substring.md | planned |
| 21 | Substring with Concatenation of All Words — https://leetcode.com/problems/substring-with-concatenation-of-all-words/ | Hard | LeetCode | Frequency counting + fixed windows | Minimum Window Substring | 021-substring-concatenation-all-words.md | planned |
| 22 | Codeforces hashing-tagged problem of your rating — https://codeforces.com/problemset/ (filter tag: hashing) | Hard | Codeforces | Rolling hash / counting | Pattern 7 teaser + CP-Algorithms reading | 022-codeforces-hashing-pick.md | planned |
এই tracker কীভাবে ব্যবহার করবে¶
- Status-গুলো:
planned→attempted→solved→revisit(এক সপ্তাহ পরে ফিরে এসে cold অবস্থায় আবার solve করেছ)। - কোনো editorial-এ উঁকি দেওয়ার আগে অন্তত 20 মিনিট pattern-টার নাম জোরে জোরে বলার চেষ্টা করো ("এটার গন্ধ complement lookup-এর মতো, কারণ...")।
- Solve করার পর 24-section template (
../../templates/ds-problem-note-template.md) দিয়ে note file ভরো: "trigger words" আর "what I'd recognize faster next time" section দুটো hashing-এর জন্য সবচেয়ে জরুরি। - Problem 1, 10, আর 13 হলো তিনটা canonical interview demonstration — ওই note-গুলো যেন তোমার সেরা কাজ হয়।