I'm trying in vain to find some online (classical) algorithms problems to deeply exercise "complexity" and maybe see (even try) mathematical demonstrations.
As far as I can see, the sites that I found (CodeChef, Project Euler) seem to be more programming oriented, even if I like the format and their challenge. That is, even when speed is somehow important, you cannot not know the exact complexities values for the algorithm (the lovely greek letters), maybe some demonstration of the efficiency of the solution.
An online course or a book is acceptable if it is more problems oriented. In my opinion, these are the kind of questions that a development top company should ask anyway.