http://forum.logicalgamers.com/underground-bronze/35864-cracking-coding-interview-fourth-edition.html#post284626