Эти книги помогут тебе освоить алгоритмы и структуры данных: знание: кучи, динамическое программирование, различные сбалансированные деревья (красно-черное, 2/3, AVL). Понимание NP и знание методов оптимизации, поиск подстроки в строке, жадные алгоритмы, алгоритмы на матрицах (Дейкстры, Флойда-Уоршела), прямой и дополнительный коды, булева алгебра, теория вероятностей (базовая), абстрактная математика (теория групп, полей, колец).