Hi everyone, Readers who’ve worked through the material in Algorithmic Thinking might be interested to know what’s out there to read next. In the book, I offer some pointers to more traditional algorithms textbooks that you might consider if you’d like to dig deeper into the theory of algorithms. But if I’ve managed to whet your appetite for c... Read more 02 Nov 2020 - 8 minute read
Hi everyone, Let’s solve the COCI (Croatian Open Competition in Informatics) programming puzzle that I gave at the end of Last week’s post. Give it a try if you haven’t already done so… This problem is a … a … a … a hash table problem! In Chapter 1 of my book Algorithmic Thinking, I offered a clue for when hash tables might apply: it’s whe... Read more 21 Oct 2020 - 12 minute read
Hi everyone, Last week, I suggested a programming puzzle. I asked you to peruse the material from each chapter of the book and choose the best approach for solving this problem… check out that post now if you haven’t already :) This problem is a … a … a … a binary search problem! It’s the Aerodrom problem from COCI 2012-2013 Contest 3. As I... Read more 14 Oct 2020 - 6 minute read
Hi everyone, I wrote Algorithmic Thinking to teach data structures and algorithms motivated by competitive programming examples. To begin each chapter, we meet a new problem that requires us to learn new data structures or algorithmic techniques. We then use what we learned to solve the remaining problems in the chapter. One skill that’s hard ... Read more 06 Oct 2020 - 4 minute read
Hi everyone, At the end of Chapter 3 of Algorithmic Thinking, I included one example of using memoization to compute the number of valid solutions to a problem. I’ve gotten a few requests to cover another example, so I’ll do that here! I’ll assume that you’re familiar with the memoization/dynamic programming material from Chapter 3. The proble... Read more 20 Sep 2020 - 13 minute read