# Hashing — Problem Tracker

[অধ্যায়ে ফিরে যাও](../README.md) · [Pattern guide](../patterns.md) · [চিত্রসহ ব্যাখ্যা](../visual-explanation.md)

**এই তালিকার প্রতিটি problem-এর বাংলা নোট ইতিমধ্যেই লেখা আছে।** `Official task` বা platform link দিয়ে মূল প্রশ্ন ও judge খুলবে; `বাংলা নোট` বা `Note file` দিয়ে এখানকার ব্যাখ্যা খুলবে। `planned` হলো তোমার ব্যক্তিগত practice status, নোট অনুপস্থিত থাকার চিহ্ন নয়। Difficulty/স্তর হলো এই পাঠক্রমের শেখার ক্রম; platform-এর difficulty আলাদা হতে পারে।

নিচের সব 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](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](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](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](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](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](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](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](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](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](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](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](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](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](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](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](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](017-encode-decode-tinyurl.md) | planned |
| 18 | Sum of Two Values — <https://cses.fi/problemset/task/1640/> (CSES, task name: Sum of Two Values) | Medium | CSES | Complement lookup | CP input size-এ Two Sum | [018-cses-sum-of-two-values.md](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](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](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](021-substring-concatenation-all-words.md) | planned |
| 22 | String Matching | Hard | [CSES 1753](https://cses.fi/problemset/task/1753/) | Rolling hash; exact KMP | Window keys | [বাংলা নোট](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](../../templates/ds-problem-note-template.md)) অনুসরণ করে বিদ্যমান note-এর পাশে নিজের শেখা যোগ করো: "trigger words" আর "what I'd recognize faster next time" section দুটো hashing-এর জন্য সবচেয়ে জরুরি।
- Problem 1, 10, আর 13 হলো তিনটা canonical interview demonstration — ওই note-গুলো যেন তোমার সেরা কাজ হয়।
