Задать вопрос
@Quod_42

Как научиться решать алгоритмические задачи?

всем привет, я с 15 лет занимаюсь программированием, пробовал все, остановился на бэке, щас мне 20 лет и я работаю на свой универ бэкэнд разрабом, весь свой путь делал всякие пет проекты и изучал технологии. всегда были проблемы с решением алгоритмических задач на олимпиадах или задач на сайтах по типу leetcode, codewars, на последнем сайте у меня 483 очка, на первом очень сложно решать задачки. вот недавно захотел устроиться в школу бэкенда в яндексе и не прошел две тестовые задачки уровня ease. с математикой у меня вся было средне иногда даже ниже среднего. вот можете посоветовать книги, курсы или какую нибудь методику чтобы влиться в эту тему может свой опыт расскажете? хочется научиться понимать когда какой алгоритм использовать и придумывать сами алгоритмы.
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 2
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Тут поможет только практика. Чтобы научиться решать задачи - надо много задач решить. Если не можете какую-то задачу решить сами, читайте разбор или чужие решения, пока не поймете, что там происходит. И потом обязательно реализуйте решение сами, не перепечатывая готовое.

Хорошие книги: Кнут "искусство програмирования", Кормен "алгоритмы. Построение и анализ", Бхаргава "Грокаем алгоритмы". Старайтесь прорешивать все упражнения в этих книгах. Но прочитав их вы задачи решать не научитесь, а лишь подтянете базу.
Ответ написан
Комментировать
@CBET_TbMbI
Смотря в чём именно проблема.

Если ты в принципе не знаешь, как сделать ту или иную задачу, если твой алгоритм не верно её считает, то тут вряд ли чем можно помочь. Это как 3D-мышление, умение ориентироваться на местности или умение писать стихи. У кого-то это есть, у кого-то нет. Научиться этому почти нереально.

Если же твои алгоритмы считают верно, но медленно и неоптимально, то тут можно работать над собой. Изучать алгоритмическую сложность. Чтобы с первого взгляда отличать O(N^2) от O(N*logN) и т.п. И не только отличать, но и чувствовать, где какой сложности можно добиться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы