https://medium.com/illumination/how-i-cracked-the-coding-interviews-by-juggling-three-balls-1b44c6be4238