In fact, coming up with the CS-perfect solution immediately may be a bit of an anti-signal. I want the person who can think their way through to a solution to a problem that's new to them reasonably well. The fact that you happened to have memorized the best algorithm for this and can recite it on command doesn't tell me much useful, because nobody has the perfect algorithm for everything memorized.
This is a horrible over-generalization, but it seems to me that at least for last 10 years or so colleges are creating students who are more like systems integrators (glorified stack overflow cut-and-pasters) than developers who can equally well think for themselves and derive things from scratch.
I learned to program in the late 70's in the 8-bit home computer era, and developers of my generation had no choice but to write most of everything from scratch, other than implementing a few well known published algorithms. You approached everything from a perspective of "how can I solve this problem?" rather than "what can I find to solve this problem for me?". Additionally due to severe hardware constraints (speed, memory) we had to always be creative and think outside the box - the mentality was that nothing was impossible, just a matter of finding the best solution.
Yes, yes, oh my god yes!
The classic one that will stick in my memory forever was the candidate with an MSCS who was given the problem description and categorized and described what class of problem it was, but completely failed to make any progress in solving it.
I'm sure she was great at complex algorithms, but we just wanted a for... loop to start with.
The flipside of this is that one of the best hires we ever made had such a bad resume that I remember storming into my boss' office and asking why I was wasting my time interviewing that person.