Hey everyone! I have a Master's degree in Computer Science and I'm looking to refresh my knowledge on Data Structures and Algorithms (DSA) to get better at solving LeetCode problems and prepare for software engineering job applications. With so many DSA topics out there, I need your help to figure out which ones are really important, especially for tech interviews. Which data structures and algorithms should I prioritize to really succeed in LeetCode and during job interviews? Thanks in advance!
5 Answers
Funny to think that a Master's in CS isn't always seen as enough to land a software engineering interview! Shows the reality of the job market.
It's important to note that studying DSA for broader understanding is different from preparing for LeetCode-style interviews. When you think of revising DSA, consider it more like strategizing for specific problems rather than just theory.
You'll want to focus on graphs. They're basically the backbone of many data structures and problems. Everything else tends to relate back to graph concepts in one way or another!
So, are you saying all data structures can be boiled down to graphs?
For interviews, companies like Amazon and JPMorgan Chase really like Lists, Hashmaps, and techniques like divide and conquer and greedy algorithms. On the other hand, Google and Meta often lean towards Hashmaps, Graphs, trees (trie), as well as DFS, BFS, dynamic programming, and string manipulation. Just a heads up!
I heard LeetCode even offers a specific DSA course meant to help with these interview challenges. It could be worth checking out!

Exactly! I think of LeetCode problems as puzzles that just happen to involve DSAs.