I agree most of us don't have to use them directly everyday but there some days when DSA knowledge can provide elegant solutions. What are some cases where you use it?
Yes we wrote dfs bfs programs in everyday work
Every time someone paid for their ride in cash, I had to solve the coin change problem to minimize the number of coins the rider needed to carry!
I used linked hash maps, hash maps and some other DS to create my own DS to satisfy the needs at the time.
Yeah, using basic stuctures and knowjng when to use a list vs a hashmap vs a treemap is like half the job. Not sure why interviewing doesn't involve a lot more data flow because it's largely a skill set that LC doesn't test for.
I do Frontend with React/Redux. While testing sometimes, you need to create a mock of the store for certain test cases with properties set to specific values. These values can exists in different nested levels of the object, up to 4 levels deep nested in an object - Redux store is basically an object. I created a function that does a depth first search into the store object to update the desired properties. I just love looking at it.
Working on CV python project. LC practice has definitely made my python cleaner and a bit more efficient.
I once used abstract algebra conception to design fast algorithm for specific problem.
Any details you can give? This sounds interesting and well beyond stupid LC problems.
Yep, I had to optimize linguistics-related data consisting of sets of word forms. These sets sometimes intersected, sometimes not. And if one splits that sets into system of non-intersecting sets, processing could be more efficient. I failed to found an algorithm for this problem in the Google at that time. My initial brute-force approach was too slow. But after some thoughts I found that that system can be built as "classes of equivalence" for particular relation, and wrote a Python script that processed gigabytes of daily data in just 20 minutes. I have no idea if the algorithm was invented before or if it is optimal one. May be, it worth searching again, just in case :)
Implemented a distributed bin packing algorithm in my current project. There were constraints as well as various special cases that affected what could be considered an optimal output.
It's 95-99% recognition of when to look up an efficient way and usually then to find a library where somebody already implemented it. We had a bad performance bug because somebody implemented bad (n^3 plus other factors) algorithm for string matching. OTOH, there were good libraries to do what we needed to do, so it wasn't even like coding it up out of CLR or something.
I wrote a tree traversal to generate a mapping of continents to datacenters
If you will write a compiler, game or database engine you surely use them. But those serious guys don't hang in Blind.
Dislike. I have done 2/3 you mentioned above
Tell us more raptor.