6 ms·
I highly recommend the book Competitive Programming 3 by Steven and Felix Halim (https://sites.google.com/site/stevenhalim/ https://sites.google.com/site/steven
by stack_underflow 12y ago
I highly recommend the book Competitive Programming 3 by Steven and Felix Halim (https://sites.google.com/site/stevenhalim/ https://sites.google.com/site/stevenhalim/). I prefer the larger print version as it's much easier to read and have laying on your desk. It has tonnes of references to problems on the UVa Online Judge (another popular judge site) at the end of each chapter so you can work on problems relating to the covered theory.
My first serious introduction to algorithms was through Tim Roughgarden's 'Algorithms: Design and Analysis' course on Coursera. It's a nice formal introduction and really focuses on and builds an intuition for how to think about problem solving like a computer scientist. I'd also recommend Steven Skienna's Algorithm Design Manual as it's written in a similar style.
As mentioned earlier, the TopCoder Online Judge is a great tool to practice problems as well. I could never find a tutorial which covered how to effectively use TopCoder as a practice tool so I wrote one for my programming club: http://acx0.com/cpc/topcoder.html http://acx0.com/cpc/topcoder.html (note: the rest of my site is a complete mess right now)
Of course, there's tonnes of other resources out there but these would be my top recommendations so far.