Interview questions from Cracking Coding Interview