Algorithm Design Manual is great.
- Mocking up the problem on paper or white board is crucial.
- The functionality of a hash table can be extrapolated and used to solve many problems at the cost of efficiency.
- Arrays can be used to back most higher level data structures. Sometimes a “data structure” is no more than some clever math for accessing locations in an array.
- 100 days of algorithms
- Algorithms - Solved algorithms and data structures problems in many languages.
- Algorithms by Jeff Erickson
- Top algos/DS to learn