Мне больше нравится чувство полного опустошения и тщетности бытия после просмотра топовых решения задач на литкоде.
Ебошишь херню на стописят строк, а какой-то индус в пять строк решает эту же задачу.
А наоборот тоже странно бывает: пишешь решение в 5 вызовов функций стандартных библиотек, смотришь в топ решений на CodeSignal (там по голосам) — а там стописят строк, где 90% кода значения между типами туда-сюда перегоняются из пустого в порожнее, а остальное как у тебя.
Помню одно из топовых решений задачи, где по условию на вход подаются числа в диапазоне от 0 до 999.
Решение - это 999 case для каждой цифры на тысячу строк
Встречал задачу, где нужно было римские числа перевести в десятичные и одним из решений было это. А второе, по оценкам, решение тоже не сильно отличалось от switch/case, там обычный словарь
https://www.codewars.com/kata/51b6249c4612257ac0000005/solut...
Но будет ли код индуса настолько быстрым? Когда решал задачки на C#, часто видел индусские решения, длинным жирным LINQ. Боюсь представить сколько там было лишних аллокаций.
Linq и скорость понятия, мне кажется, вообще противоположные. Обычно печалит, что есть куда более короткий и просто алгоритм, чем придуманный мною.
Ну майкрософт с каждым выпуском .NET LINQ ускоряют. А насчет алгоритмов только практика поможет.
Линк - это скорость выдачи кода решающего задачу, но далеко не всегда про скорость выполнения. Но привыкаешь со временем, никаких foreach и for с кучей вложенности, все в одну строку и за секунды :(
литкод это про знание алгоритмов, цель одна - набить руку на собесы с алгоритмическими задачками
будете знать алгоритмы - будете тоже решать в пять строк
Помимо алгоритмов ещё в математику частенько упирается задача.
Условно вот достаточно простая задача на картинке.
Я вижу здесь бинарное дерево с кэшированием. Мое решение в 50 строк условно.
Но если решать математически, то 4 строки)
Конечно, суть не в том, у кого короче)
Это два разных подхода со своими плюсами и минусами. у меня проблема у том, что все равно становится не по себе от таких красивых решений и что у меня мозгов не хватило с наскоку дойти до этого.
Эти изящные решения, как правило, основаны на знаниях подходов к решению типовых задач. Теперь и вы знаете, что можно короче. Это абсолютно нормально - написали свой велосипед, посмотрели решения других людей, в следующий раз блеснули коротким решением)
А есть примеры задач? Просто кажется Литкод про собеседования, и там писать 150 строчек не приходится (мб не прав)
Ладно, думаю гордиться или грустить от того, что я индус на Литкоде) Хотя тут в любом случае вопрос усердства, если будете много решать -- обязательно научитесь =)
Ну и всегда есть не MANGA-like собеседования, где вообще об этом не просят)
я не для собесов, а для себя. Поэтому собственная тугость в нахождении решений сильнее удручает.
За поддержку спасибо)
Если для себя, то кажется, что есть acmp / timus / informatics / codeforces / hackerrank, где и разборы есть, и задачи не на 15 минут, и базы больше, и задачи не однотипные =)
А что это всё? Тоже для собеседований?
Я как-то подсел на литкод: решаю сложные задачки для себя, забавно местами. Но сути не понял.
Сборники олимпиадных задач. Литкод даже сложный -- это урезанные варианты этих задач, так как они в любом случае собеседующего формата, а не на серьезно подумать =)
Вот эта у меня очень длинной получилась
https://leetcode.com/problems/minimum-moves-to-move-a-box-to...
Тут согласен, у меня 56. Но общая массая всех медиум / хард тасок скорее на подумать, а не на покодить) (даже человек выше в треде говорил о решениях за 5 строчек, а тут такое кмк не очень возможно). Интересно стало, что за компании дают такую таску на Whiteboard собесах =)





IT-юмор
7.5K постов53.3K подписчиков
Правила сообщества
Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору