There are many distinct pleasures associated with computer programming. Craftsmanship has its quiet rewards, the satisfaction that comes from building a useful object and making it work. Excitement arrives with the flash of insight that cracks a previously intractable problem. The spiritual quest for elegance can turn the hacker into an artist. There are pleasures in parsimony, in squeezing the last drop of performance out of clever algorithms and tight coding.
The games, puzzles, and challenges of problems from international programming competitions are a great way to experience these pleasures while improving your algorithmic and coding skills. This book contains over 100 problems that have appeared in previous programming contests, along with discussions of the theory and ideas necessary to attack them. Instant online grading for all of these problems is available from two WWW robot judging sites. Combining this book with a judge gives an exciting new way to challenge and improve your programming skills.
This book can be used for self-study, for teaching innovative courses in algorithms and programming, and in training for international competition.
The problems in this book have been selected from over 1,000 programming problems at the Universidad de Valladolid online judge. The judge has ruled on well over one million submissions from 27,000 registered users around the world to date. We have taken only the best of the best, the most fun, exciting, and interesting problems available.
A bunch of mostly elementary programming puzzles, which I wanted to rummage for interview questions. I think that the authors of a programming book who advise their readers, "Make Your Arrays a Little Larger Than Necessary — Off-by-one errors are a particularly subtle and tricky class of bugs. Clear thinking and discipline are the right way avoid them. [sic] But thinking is hard and memory is cheap. We find it a useful crutch to define arrays one or two elements larger than should be necessary so as to minimize the consequences of any off-by-one error," should be drawn and quartered (or fifthed).
I'll admit, I haven't solved all the problems in the book.
So, this book in the era of Leetcode, Hackerrank and the like might look obsolete. But, here the problems are well thought of whereas some of the problems of Hackerrank are not well defined. Surely a very interesting collection of computer science problems, touching effectively every known subfield of CS out there.
Plus, you can still submit your solutions at [1] and get judged by the bot. So, using this book and [1], you have a Hackerrank of top quality problems that will better your problem solving skills for sure.
I've read this book when I was preparing to programming competitions while still in high school. Although it doesn't have advanced concepts it's very practical and in my opinion good way to start participating in programming contests,