Is it worth it to study non-standard data structures and algorithms like Segment Trees, Bloom Filters, Red/Black - AVL trees, or algos like KMP, Tarjan’s / Kosaraju’s for SCC’s, Eulerian / Hamiltonian Path/Circuits etc. For bar raiser questions? Should I focus on review (LC Count is 320) / system design, do company tagged questions, or learn new stuff to pass the interviews and receive close to max-band offers? I have virtual on-sites in a month. I will definitely be studying these other topics after I hopefully land a role, but trying to find the maximum ROI for such limited time. What do you think the probability of getting a question that requires something like that is during an on-site? YoE: 5 TC: 🥜
Out of the ones you listed, maybe tarjans because it’s just dfs + cycle detection. Also, knowing what bloom filters are, but not necessarily how to build them, can be useful for some system design questions. As for red/black & avl trees - maybe just look up what kinds of balanced trees your language implements under the hood so you sound smart and can say things like “I know my language uses red/black trees but I can’t remember how to implement that lol”. Similar bonus points if you e.g. know your language implements merge sort under the hood.
They are useful for some design interview and Google LC Hard problems, but mostly useless outside that. If you get a chance to design systems though, they will come in handy. Bloom Filters, KMP and Kosaraju are really useful to know later in your career and you may end up learning them naturally even, they're very useful for a wide array of design problems, tree variations not so much.
I wish I had a role where I’d able to learn to those things to complete my work tasks or a specialized project… one day