Pull to refresh

Comments 13

Из 10 штук ни одного русскоязычного… Печальная статистика.
Ээээээ… Codeforces. Создана Мишей Мирзаяновым. Русскоязычен. Почти все задачи формулируются на двух языках — русском и английском.
Мне кажется, вы несколько переутомились и устали в это прекрасное январское утро. Вам стоит отдохнуть.
… и немного подтянуть английский — потом еще спасибо себе скажете;
Что насчет acm.timus.ru? Когда то был весьма популярен.

А в topcoder уже можно решать задачки без участия в соревнованиях?
Ну и интерфейс — когда я в последний раз туда заходил, он был невероятно ужасен, хуже только фейсбук.

Попробовал codewars. Дошел до 5kyu и надоело. Причем надоело даже раньше, чем бросил раньше, какое-то время еще писал задачи для прокачки рейтинга. Проблема, что все задачи очень похожи, можно выделить всего несколько типов, причем абсолютно все легко решаемые, с определенным уровнем подготовки, а сложность, зачастую, лишь показатель того сколько ты убьешь на написание кода времени. Это на всех ресурсах так или есть проекты с задачами поинтересней?
Посмотрите на вторую половину списка, где сложность помечена как Intermediate — Advanced. На этих сайтах есть как базовые задачки, так и весьма любопытные.
В частности Hard и выше задачки на Hackerrank, Hard задачки на Leetcode, Medium и выше на Codechef.
Есть полностью русскоязычный acmp.ru/index.asp?main=tasks и там много прикольных алгоритмических задач. Да в основном рассчитан на учащихся, но задачи отсортированы по тематикам и сложности. Выбор языков не так уж и широк, но для начинающих вполне достаточен.
По-моему, решение задачек на этих сайтах сродни решению сканвордов и кроссвордов. Неужели кому-то в IT не хватает реальных задач?
Да, интервьюирующим программистов.
К сожалению, некоторые люди решают реальные задачи через заднее место, абсолютно не задумываясь о том, что же они творят. И им бы хорошо было бы как раз порешать задачи начального/среднего уровня, чтобы не делать банальных глупостей.
Как пример, реальная ситуация, которую пришлось решать. Мобильное приложение умирало при добавлении нескольких тысяч элементов в список. Вскрытие показало, что элементы добавляются по одному. На каждый вызов элемента вызывается сортировка всего списка. На каждый вызов метода сравнения в компараторе вызывается полный просмотр другого списка поменьше, на 10-100 элементов). Теперь посчитаем сложность при размере одного списка N и второго M.
Добавляется N элементов. Сортировка на каждое добавление NlgN, итого уже (N^2)lgN. Ну и раз при каждом сравнении мы пробегаем по другому списку, получаем (N^2)*M*lgN. И все вот этого просто для создания сортированного списка с некоторыми проверками при сортировке. После рефакторинга значение, которое искали в коротком списке было закешировано, ибо не менялось, а добавление с сортировкой превратились в TreeSet. И стало все N*lgN.
Sign up to leave a comment.