Hacker News new | past | comments | ask | show | jobs | submit login

What a tragedy. I remember Bob’s code that generates certain numbers: https://www.beust.com/weblog/coding-challenge/. Bob’s code is in Java, yet uses clever backtracking techniques to achieve the best performance among many solutions in all kinds of languanges.

Huh, it seems Bob further optimized his code. The one I remember used the similar approach, but employed a doubly-linked list for backtracking. The pleasant surprise that I got from his code was that recursion plus a linked list still beat those "faster" languages, a classical example of optimizing algorithms first, as beautifully argued in Steven Skiena's Algorithm Design Manual

Here's the one you were thinking of. This was the one "further optimized", not the first one posted:


Ah, yes. Thanks!

I ported his code to C++, the linked list version and the other recursive version. Then I removed the recursion. For me, the linked list is 2X slower and the non-recursive version using a stack is slightly faster than his original version.


I was curious about this, but it looks like the links to crazybob.org now 404.

It seems to me like the trick would be to find a way to generate, in order, the numbers you can't print, then you just print the gaps between them.

Hah! I was just remembering the exact same thing. His fingerprints are all over my development as a professional Java programmer.

Put it on his epitaph

Applications are open for YC Winter 2024

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact