There is no one magical book that covers it all cause if there was I'd be on my way to applying for MiT rn. Like Etho said mix and match your resources for varying levels of difficulty and so that you're exposed to a larger range of content. Using two or three textbooks eg Cambridge for learning...