Problem Tracker — Arrays and Strings¶
এটা এই topic-এর working list, মোটামুটি easy → hard order-এ সাজানো। প্রতিটা row solve করার সাথে সাথে নিজের আলাদা note file হয়ে যায়। প্রতিটা full note ../../templates/ds-problem-note-template.md-এর 24-section template মেনে চলে — কোনো problem শুরু করার সময় template-টা list-এ দেওয়া note file-এ copy করে নাও। এখানের সব problem-এর description আমাদের নিজেদের ভাষায় লেখা; official statement-এর জন্য source link-এ click করো।
এই tracker কীভাবে ব্যবহার করবে:
- প্রথমে order ধরে solve করো; পরে pattern ধরে jump করতে পারো।
- যেতে যেতে
Statusupdate করো: planned → attempted → solved → reviewed। - "Inherits from" বলে দেয় problem-টা গোপনে আগের কোন idea reuse করছে — code লেখার আগে সেটা মুখে বলো।
| # | Problem | Difficulty | Source | Pattern | Inherits from | Note file | Status |
|---|---|---|---|---|---|---|---|
| 1 | একটা char array in place reverse করো | Easy | LeetCode 344 | Two pointers | Basic swap + index walk | 001-reverse-string.md | planned |
| 2 | যে দুটো index-এর value-র যোগফল target হয় | Easy | LeetCode 1 | Frequency counting / complement | Math level 5 (prefix/contribution)-এর complement thinking | 002-two-sum.md | planned |
| 3 | দুটো string কি ঠিক একই অক্ষরগুলো ব্যবহার করে? | Easy | LeetCode 242 | Frequency counting | Math fundamentals-এর counting | 003-valid-anagram.md | planned |
| 4 | Sorted array থেকে duplicate গুলো in place সরাও | Easy | LeetCode 26 | Two pointers (slow/fast) | Two-pointer reversal-এর idea | 004-remove-duplicates-sorted.md | planned |
| 5 | দুটো sorted array merge করো বড়টার ভেতরে, in place | Easy | LeetCode 88 | Two pointers (পেছন থেকে) | Pair-sum-এর pointer movement | 005-merge-sorted-array.md | planned |
| 6 | সব zero শেষে পাঠাও, বাকিদের order ঠিক রেখে | Easy | LeetCode 283 | Two pointers (slow/fast) | Remove-duplicates-এর skeleton | 006-move-zeroes.md | planned |
| 7 | একবার buy + একবার sell করে max profit | Easy | LeetCode 121 | Running min (Kadane-flavored) | Prefix-min thinking, math level 5 | 007-buy-sell-stock.md | planned |
| 8 | একটা weight কি দুটো জোড় positive ভাগে ভাঙা যায়? | Easy | Codeforces 4A | Parity warm-up | Math fundamentals-এর modulo arithmetic | 008-watermelon.md | planned |
| 9 | একটা static array-তে অনেকগুলো range-sum query-র উত্তর দাও | Easy | CSES Problem Set — "Static Range Sum Queries" | Prefix sums | Math level 5-এর prefix sums, সরাসরি | 009-static-range-sum.md | planned |
| 10 | কোনো repeated character ছাড়া longest substring | Medium | LeetCode 3 | Sliding window | Two pointers + frequency counting | 010-longest-unique-substring.md | planned |
| 11 | যেকোনো contiguous subarray-র largest sum | Medium | LeetCode 53 | Kadane's | Prefix sums (best = prefix - min prefix) | 011-maximum-subarray.md | planned |
| 12 | Container-এর দেয়ালের best জোড়া (max area) | Medium | LeetCode 11 | Two pointers | Pair-sum-এর discard argument | 012-container-most-water.md | planned |
| 13 | Array-কে ডানে k ঘর rotate করো, O(1) extra space-এ | Medium | LeetCode 189 | Triple reversal | In-place reversal (problem 1) | 013-rotate-array.md | planned |
| 14 | নিজেকে বাদ দিয়ে সবার product, division ছাড়া | Medium | LeetCode 238 | Prefix products | Prefix sums, + এর জায়গায় x বসিয়ে | 014-product-except-self.md | planned |
| 15 | যে subarray গুলোর sum ঠিক K, সেগুলো count করো | Medium | LeetCode 560 | Prefix sums + hash map | Two Sum-এর complement + prefix sums | 015-subarray-sum-k.md | planned |
| 16 | যোগফল zero হয় এমন সব unique triple | Medium | LeetCode 15 | Sort + two pointers | Pair sum (problem 2), একটা element fix করে | 016-three-sum.md | planned |
| 17 | একে অপরের anagram এমন word গুলো group করো | Medium | LeetCode 49 | Frequency counting / canonical key | Valid anagram (problem 3), bucket key হিসেবে | 017-group-anagrams.md | planned |
| 18 | একটা set-এ consecutive integer-দের longest streak | Medium | LeetCode 128 | Set + smart start detection | Frequency/set membership | 018-longest-consecutive.md | planned |
| 19 | 3[a2[c]]-এর মতো string decode করো | Medium | LeetCode 394 | String building + stack | String building; ../../04-stack-and-queue/-এর preview | 019-decode-string.md | planned |
| 20 | t-এর সব char ধারণ করা s-এর shortest window | Hard | LeetCode 76 | Sliding window (shrinkable) | Longest-unique window (problem 10) + counts | 020-minimum-window-substring.md | planned |
| 21 | Elevation bar-গুলোর মাঝে আটকে থাকা পানি | Hard | LeetCode 42 | Two pointers / prefix max | Prefix max array + pointer discard | 021-trapping-rain-water.md | planned |
| 22 | Smallest missing positive integer, O(n) time O(1) space | Hard | LeetCode 41 | In-place index marking | Array-কেই-নিজের-hashmap বানানোর trick | 022-first-missing-positive.md | planned |
| 23 | Size k-এর প্রতিটা window-র maximum | Hard | LeetCode 239 | Monotonic deque | Sliding window + queue — full walkthrough ../../04-stack-and-queue/patterns.md-তে | 023-sliding-window-maximum.md | planned |
Suggested milestones (পরামর্শ দেওয়া milestone)¶
- Problem 1–9-এর পর: basics তোমার দখলে — pointers, counting, prefix sums।
- 10–17-এর পর: এই topic-এর বেশিরভাগ interview medium তুমি pattern-match করতে পারবে।
- 18–23-এর পর: তুমি hard territory ছুঁয়ে ফেলেছ; problem 23 তোমাকে stack/queue chapter-এ hand off করে দেয়।