Diving Deep into DSA on My Journey to L5-L6! πŸš€

Diving Deep into DSA on My Journey to L5-L6! πŸš€

2024, May 08    

πŸš€ Day 15 of my journey to becoming an L5-L6 developer!

πŸ“š Topics Covered So Far:

  1. Array & Hashing
  2. Two Pointers
  3. Sliding Window
  4. Stack
  5. Binary Search
  6. Queue
  7. Priority Queue
  8. Linked List
  9. Trees
  10. Recursion
  11. Graphs
  12. Dynamic Programming
  13. Backtracking

🎩 Pro Tips & Personal Insights:

  • Two Pointers: Like sliding windows, but with limited pointers. Great for optimizing solutions.
  • Sliding Window: Start with a valid window, add items, and remove them if the window becomes invalid.
  • Stack: Think of it as a place to store things for later, in reverse recursive order.
  • Binary Search: The magic of reducing your domain on every step to find the item efficiently.
  • Linked List: A node that knows only about its adjacent nodes.
  • Trees: Do things for one node, then make it recursive for all. Like a domino effect!
  • Recursion: A powerful tool to solve problems by breaking them down into smaller, manageable pieces.
  • Dynamic Programming: Solve via recursion, add cache, convert into iterative solution, then optimize space. Voila!
  • Backtracking: When you need to explore all possible solutions without getting lost. Think of it as your problem-solving GPS.

Here’s a neat trick for backtracking:

backtrack_arr = []
def rec(i):
    backtrack_arr.append(s[i])
    rec(i+1)
    backtrack_arr.pop()

πŸš€ Excited to dive deeper into DSA and reach my goal of becoming an L5-L6 developer! πŸ’ͺ Follow along for more updates and tips!

πŸ“– Following the roadmap on https://neetcode.io to master DSA!