Slightly off-topic, but hopefully others can benefit as well:
I am learning to program on my own, and I have tried some of the CodeSprint Fall 2011 questions (http://csfall11.interviewstreet.com/recruit/challenges/dashb...). Often, I find solutions that "work", but that score poorly because they exceed the time limit (e.g. Card Shuffling, 3/10, 9 points).
What books should I read (or what videos should I watch, etc.) to get better at things like this? Any suggestions would be much appreciated.
Also look up google code jam, I think they might have some links for learning. In general the kind of solutions sought are called "dynamic programming". I think there is also a book about solving TopCoder problems, though I can't find it atm, and haven't read it.
I am learning to program on my own, and I have tried some of the CodeSprint Fall 2011 questions (http://csfall11.interviewstreet.com/recruit/challenges/dashb...). Often, I find solutions that "work", but that score poorly because they exceed the time limit (e.g. Card Shuffling, 3/10, 9 points).
What books should I read (or what videos should I watch, etc.) to get better at things like this? Any suggestions would be much appreciated.