At some point you build a machine in your brain that automates and simulates some mechanics and your role shrinks into feeding the machine with the relevant information. Then it’s easy, you can imagine what will happen just by looking at the problem.
I believe the trick is to properly understand the low level basics, explore edge cases and play with the machine as you build it.
Many people will try to learn the basics of the highest level possible, then proceed to master methods and cases without deeply understanding the subject. They cannot compete with the person doesn’t know too much but has very deep grasp on it, working the way from there.
What people don't like, or even question, about this concept is the correlation between IQ and "intelligence" (whatever this is).
IQ seems to be mostly a genetic trait. Test results kind of normalize in grown up humans. Childhood experience gets less and less significant with age, which points to a strong genetic influence. (According to Wikipedia).
I think a lot of people actually don't like the implication arising here, as it points in the direction that you need to be born "smart" to be "smart" — and that you can't change mostly anything about that significantly no matter what you do.
Nevertheless there seems to be a difference how fast, or even if, one can reach "full potential".
IQ is just a trait, and without the right stimulus it won't develop quickly. This seems no different to other genetic traits after all.
I'm of course not going into the question whether IQ is a good, or even adequate, measure of "intelligence" (whatever this is), as this is a can of worms… At least it's quite sure not the full picture. One can for example excel at arts or sports without a high IQ.
Wouldn't that mean that mathematicians do not actually improve during their careers outside of things like management and publishing?
I wouldn't say this is a hard rule though as a fresh, unbiased mind can also lead one down an overlooked path with surprising results.
1. What is the class of problem I am dealing with? (e.g., solution uses a stack, queue, heap, etc.) 2. What is the likely complexity of the solution?
Knowing, or at least having a guess, to these two questions greatly simplifies the approach. You do the exact same thing with solving integrals (e.g., is this an integration by parts question? is it a substitution question? etc.) and the same for physics, chemistry, etc. With algorithms, once you've done enough and have a very good mental model, you will start making translations between problems. That is, given problem A, you are able to map it to problem B which is easy to solve using some technique you know.
https://leetcode.com/discuss/interview-question/489169/Googl...
or will I just forget what I learned from leetcode? if so what can I do to retain my leetcode knowledge. I just started this week not for an interview but to actually improve my long term memory of algorithms, data structure knowledge so I don't have to google everytime I wanna implement something. and hopefully to improve my reading speed when reading code
Some people will recognize patterns pretty fast, while others must solve literally hundreds of different problems, before becoming comfortable with the concepts.
People always seem amazed and baffled that some candidates can practically walk into white-board interviews unprepared, other than what they learned / did in their DS&A classes in college, and nail the interviews, while others have to basically prep 6-12 months before passing the same interview.