С чего начать изучение алгоритмов?
Почитайте Кнут "искусство программирования" а также Кормен "алгоритмы: построение и анализ".
Вообще, многие задачи можно свести к правильному выбору структуры данных. Да-да, есть всякие задачи поиска кратчайшего пути, жадные алгоритмы, динамическое программирование. Но в основном, те задачи, которые появляются на сайтах, подобных codewars или на собеседованиях, можно так или иначе решить, выбрав правильную структуру данных.

Советую методично прорешать все задачи из этого раздела хакерранка https://www.hackerrank.com/domains/data-structures . В прошлом это повысило мой скилл и дало немало уверенности в себе. Удачи!