solutions to cracking the coding interview problems