5 ms·
The basics are essential. If e.g. you don't know what an hashmap or a balanced search tree is, or that you can find common items between two sequences or find
by devit 5y ago
The basics are essential.
If e.g. you don't know what an hashmap or a balanced search tree is, or that you can find common items between two sequences or find a shortest path in a graph with non-negative edges in O(n log n), or that you can't (as far as we know) solve SAT, max-clique or subset-sum in polynomial time then you should not be programming software to be used by others.
Advanced algorithm design skill however is generally only useful if you are doing specifically algorithmic work.
- deleted 5y ago[deleted]
- thom 5y agoI think this is too strong an opinion to hold. I think there is great value in being able to put problems you face into some sort of detailed taxonomy, and either know directly or be able to find the correct/optimal solution for those problems. To be able to do that, you do have to be exposed to what exists in the body of computer science knowledge. But while I disagree with anti-leetcode people who just claim googling is enough, I do believe it's enough to know that something is a graph/tree/optimisation/whatever problem and google a valid implementation. Having an intuition for performance and complexity is also very useful, but not knowing the exact complexity of an algorithm isn't a blocker to good work. I think it's essential to have a good map in your mind. I don't think it's essential to have a photographic memory of every route through that map.
- phist_mcgee 5y ago>then you should not be programming software to be used by others I think that is a very broad statement that belittles the work of many developers. You don't present this as your opinion, you state this as fact. Your dictatorial attitude is exclusive and not helpful in a discussion about the usefulness of leetcode.