Practice
DSA Problems
Big-O দিয়ে শুরু করো, তারপর 8টা topic এ 50টা interview problem, এমন ক্রমে যেখানে প্রতিটা topic আগেরটার ওপর দাঁড়ায়। প্রতিটা problem এর write-up: intuition, diagram, brute force থেকে optimal, আর code।
Topics
আটটা topic, শেখার ক্রমে। প্রতিটা আগেরটার ওপর দাঁড়ায়।
01 · 10 টা problem
Arrays, Strings আর Hashing
যার ওপর বাকি সব দাঁড়িয়ে: array আর string ঘোরা, two pointers, sliding window, আর তাৎক্ষণিক খোঁজার জন্য hash map।
02 · 5 টা problem
Linked Lists
Linked list এ data থাকে node এ, প্রতিটা node পরেরটার সাথে জোড়া। এখানে node যোগ আর বাদ দেওয়া আর তাদের link বদলানো শিখবে।
03 · 7 টা problem
Stacks, Queues আর Binary Search
Stack আর queue data কে একটা নির্দিষ্ট ক্রমে রাখে; binary search sorted data তে দ্রুত element খোঁজে। একসাথে এরা দক্ষভাবে data সামলানো আর খোঁজা শেখায়।
04 · 7 টা problem
Trees আর Binary Search Trees
Tree হলো parent আর child node এর একটা ক্রমবিন্যাস। এখানে tree traversal, node এর গভীরতা, আর node গুলোর সম্পর্ক।
05 · 6 টা problem
Graphs
Graph node আর edge দিয়ে দেখায় জিনিসগুলো একে অপরের সাথে কীভাবে যুক্ত। এখানে traversal (BFS, DFS) আর node এর সম্পর্ক।
06 · 4 টা problem
Recursion আর Backtracking
Recursion একটা সমস্যাকে ছোট ছোট অংশে ভাগ করে নিজেকেই ডাকে। Backtracking একটা একটা করে উপায় চেষ্টা করে, আর কানাগলিতে পড়লে পিছিয়ে আসে।
07 · 7 টা problem
Dynamic Programming
Dynamic programming বারবার আসা ছোট সমস্যার উত্তর জমিয়ে রাখে, তাই কিছুই দুবার হিসাব হয় না আর কঠিন সমস্যাও দ্রুত হয়।
08 · 4 টা problem
Heaps, Greedy Algorithms আর Intervals
Priority দেখে বাছাই, একটার ওপর আরেকটা পড়া interval সামলানো, আর প্রতি ধাপে ঠিক অপশন বাছা: Top-K, scheduling আর interval merge।
প্রতিটা problem যেভাবে solve করা হয়
প্রতিটা problem এ একই নয়টা stop, তাই সবসময় জানবে তুমি কোথায় আছো।
- 01Problem টা বোঝানিজের ভাষায় বলো, একটা ছোট example দিয়ে।
- 02আগে brute forceসবচেয়ে সোজা যেটা কাজ করে, ধীর হলেও।
- 03Diagram এ দেখাCode এর আগে data কীভাবে নড়ে, ধাপে ধাপে দেখো।
- 04Pattern টা ধরাTrick টার একটা নাম দাও, পরেরবার যেন চিনতে পারো।
- 05Optimal solutionBrute force ঠিক যে কারণে ধীর ছিল, সেটাই সারাও।
- 06ছয় ভাষায় codeC++, Java, Python, JavaScript, Go আর C#।
- 07Time আর space complexityপ্রতিটা line ধরে step আর memory গোনো।
- 08Edge case আর সাধারণ ভুলখালি input, duplicate, overflow: কোথায় ভাঙে।
- 09বাস্তব app এ কোথায় লাগেSpell check, Google Maps, bKash: idea টা কাজে।