Re 2.: I have taken some code challenges in the past and I find the Amazon open-ended questions the best. Sure, some people can (and possibly like to?) memorize different data structures and algos, but broad thinking suits me best and companies like Google and Facebook don't seem to be doing it enough.
Basing it on the interview questions posted online.
If you have gaps in your algo knowledge check out this book (http://www.algorist.com/), it's a dense read but comprehensive. Why be a broad thinker when you can be an everything thinker?
Basing it on the interview questions posted online.