this is a presentation from google on how to approach a technical interview.
I found it very insightful, although the solution is in c++, what is important here is the thinking process, how do you approach the problem, what are at least 2 ways in which you could solve the problem and which would be more efficient and WHY, edge cases and so on.