The challenges of problems from international programming competitions are an effective way to improve your algorithmic and coding skills and understanding. This volume uses international programming competition-type problems to motivate the study of algorithms, programming, and other topics in computer science. The book includes more than 100 programming challenges, as well as the theory and key concepts necessary for approaching them. Problems are organized by topic, and supplemented by complete tutorial material. Readers gain a concrete understanding of both algorithmic techniques and advanced coding topics. Unique * Offers a wealth of rich programming problems suitable for self-study -- all with on-line judging at www.programming-challenges.com * Presents practice training for all major programming contests -- ACM International Collegiate Programming Contest (ACM ICPC), International Olympiad in Informatics (IOI), and Topcoder Challenge * Serves as a convenient, web-based means of adding a programming component to any algorithms or software engineering course * Contains complete working code for fundamental data structures and graph, string, numerical and geometric algorithms * Provides a brief-yet-thorough treatment of key elements in number theory, geometry, dynamic programming, and graph algorithms * Supports all popular programming languages (C, C++, Pascal, Java) Steven S. Skiena is a member of the faculty of computer science at SUNY Stony Brook and is author of many widely used books, including The Algorithm Design Manual. He received the 2001 IEEE Computer Society Undergraduate Teaching Award. Miguel Revilla is a member of the faculty of computer science at the University of Valladolid, Spain. He is official website archivist of the ACM ICPC and creator/maintainer of the primary robot-judge, contest-hosting website.
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,