Practice

DSA Problems

Big-O দিয়ে শুরু করো, তারপর 8টা topic এ 50টা interview problem, এমন ক্রমে যেখানে প্রতিটা topic আগেরটার ওপর দাঁড়ায়। প্রতিটা problem এর write-up: intuition, diagram, brute force থেকে optimal, আর code।

50 problem8 topic14 easy34 medium2 hard

Topics

আটটা topic, শেখার ক্রমে। প্রতিটা আগেরটার ওপর দাঁড়ায়।

  1. 01 · 10 টা problem

    Arrays, Strings আর Hashing

    যার ওপর বাকি সব দাঁড়িয়ে: array আর string ঘোরা, two pointers, sliding window, আর তাৎক্ষণিক খোঁজার জন্য hash map।

  2. 02 · 5 টা problem

    Linked Lists

    Linked list এ data থাকে node এ, প্রতিটা node পরেরটার সাথে জোড়া। এখানে node যোগ আর বাদ দেওয়া আর তাদের link বদলানো শিখবে।

  3. 03 · 7 টা problem

    Stacks, Queues আর Binary Search

    Stack আর queue data কে একটা নির্দিষ্ট ক্রমে রাখে; binary search sorted data তে দ্রুত element খোঁজে। একসাথে এরা দক্ষভাবে data সামলানো আর খোঁজা শেখায়।

  4. 04 · 7 টা problem

    Trees আর Binary Search Trees

    Tree হলো parent আর child node এর একটা ক্রমবিন্যাস। এখানে tree traversal, node এর গভীরতা, আর node গুলোর সম্পর্ক।

  5. 05 · 6 টা problem

    Graphs

    Graph node আর edge দিয়ে দেখায় জিনিসগুলো একে অপরের সাথে কীভাবে যুক্ত। এখানে traversal (BFS, DFS) আর node এর সম্পর্ক।

  6. 06 · 4 টা problem

    Recursion আর Backtracking

    Recursion একটা সমস্যাকে ছোট ছোট অংশে ভাগ করে নিজেকেই ডাকে। Backtracking একটা একটা করে উপায় চেষ্টা করে, আর কানাগলিতে পড়লে পিছিয়ে আসে।

  7. 07 · 7 টা problem

    Dynamic Programming

    Dynamic programming বারবার আসা ছোট সমস্যার উত্তর জমিয়ে রাখে, তাই কিছুই দুবার হিসাব হয় না আর কঠিন সমস্যাও দ্রুত হয়।

  8. 08 · 4 টা problem

    Heaps, Greedy Algorithms আর Intervals

    Priority দেখে বাছাই, একটার ওপর আরেকটা পড়া interval সামলানো, আর প্রতি ধাপে ঠিক অপশন বাছা: Top-K, scheduling আর interval merge।

প্রতিটা problem যেভাবে solve করা হয়

প্রতিটা problem এ একই নয়টা stop, তাই সবসময় জানবে তুমি কোথায় আছো।

  1. 01Problem টা বোঝানিজের ভাষায় বলো, একটা ছোট example দিয়ে।
  2. 02আগে brute forceসবচেয়ে সোজা যেটা কাজ করে, ধীর হলেও।
  3. 03Diagram এ দেখাCode এর আগে data কীভাবে নড়ে, ধাপে ধাপে দেখো।
  4. 04Pattern টা ধরাTrick টার একটা নাম দাও, পরেরবার যেন চিনতে পারো।
  5. 05Optimal solutionBrute force ঠিক যে কারণে ধীর ছিল, সেটাই সারাও।
  6. 06ছয় ভাষায় codeC++, Java, Python, JavaScript, Go আর C#।
  7. 07Time আর space complexityপ্রতিটা line ধরে step আর memory গোনো।
  8. 08Edge case আর সাধারণ ভুলখালি input, duplicate, overflow: কোথায় ভাঙে।
  9. 09বাস্তব app এ কোথায় লাগেSpell check, Google Maps, bKash: idea টা কাজে।
Depot থেকে শুরু: Why Count Steps, Not Seconds →