Ilia
Для меня монеты прям откровением стали, честно говоря
Evgeniy
224 я как раз решаю сейчас, пока не осилил. Тесты не все проходит
Evgeniy
Для меня монеты прям откровением стали, честно говоря
Эта задача одна из лучших по этой теме. Хорошо показывает всю идею динамического программирования
Evgeniy
146 тоже хорошая
Владъ
Happy Monday! 👋 На этой неделе разбираемся с префиксными деревьями. Будем искать слова, которые могут быть составлены конкатенацией других слов. https://vitkarpov.me/posts/concatenated-words/
привет! недавно присоединился, интересно смотреть разборы сначала сам пытаюсь, потом сравниваю и вот в этой задачке судя по цифрам не самый оптимальный вариант у тебя получился)
Владъ
Владъ
Владъ
немного смутила сложность с подсчётом разбиений, а потом ещё и с деревом я тоже сначала думал в сторону дерева, но там проще получается
Viktor
привет! недавно присоединился, интересно смотреть разборы сначала сам пытаюсь, потом сравниваю и вот в этой задачке судя по цифрам не самый оптимальный вариант у тебя получился)
Привет, спасибо, что следишь! 👍 На самом деле, замеры эти на литкоде довольно не точные, можно одно и то же решение отправлять несколько раз подряд и получать разброс в 100% разницы 😄
Viktor
Если разницы не на порядок — тогда скорее всего сложность +- одна и та же.
Viktor
Если на порядок — скорее всего решения разные существенно.
Владъ
у меня решение наполовину похоже, но вот сам поиск кажется проще, смотри var findAllConcatenatedWordsInADict = function(words) { const enterWords = words .filter(word => !!word) .sort((a, b) => a.length - b.length) const baseWordsByLength = new Map() const res = [] function check(word) { for (let [l, baseWords] of baseWordsByLength) { const left = word.substring(0, l) if (baseWords.has(left)) { const right = word.substring(l) if (l === word.length || check(right)) return true } } return false } for (let word of enterWords) { const l = word.length if (check(word)) { res.push(word) } else { if (baseWordsByLength.has(l)) { baseWordsByLength.get(l).add(word) } else { baseWordsByLength.set(l, new Set([word])) } } } return res };
Владъ
я использую хэш для хранения длины базового слова и сами слова, и проверяю просто наличия слов
Viktor
Ты сам с какой целью решаешь, готовишься к собесам или олимпиадник?
Viktor
Вопрос из любопытства.
Владъ
просто для себя) я бросил универ и не учил никакие алгоритмы сейчас на литкоде восполняю пробелы
Viktor
Ясно. Я не бросил, но в универе учился не на ИТ, поэтому тоже восполняю.
Владъ
круто! мне интереснее всего алгоритмы на деревья, потому что я хуже всего это понимаю, вот хочу их победить)
даня
Ясно. Я не бросил, но в универе учился не на ИТ, поэтому тоже восполняю.
как рад этому чатику на самом деле халявил на алгоритмах и щас жалею) у нас, кстати, мой преподаватель лекции записывает крутые для студентов, если будет интересно: https://youtube.com/playlist?list=PLrS21S1jm43jz48qjdfYNpuIPgL3lNJ_o
Viktor
в прямом смысле балалайка 😄
даня
в прямом смысле балалайка 😄
да) у него на саундклауде есть записи
даня
он очень крутой препод, наверное, один из лучших за 4 года, плюс Елизаров по МПП и распределеннке
Viktor
мне нравится начало лекции с «определения алгоритма, которое обычно дают в школе, в целом довольно бессмысленное»
Viktor
это сразу лайк
Viktor
спасибо, что поделился. положил себе в закладки. там прямо полноценный курс.
Vitaliy
Happy Monday! 👋 На этой неделе разбираемся с префиксными деревьями. Будем искать слова, которые могут быть составлены конкатенацией других слов. https://vitkarpov.me/posts/concatenated-words/
Спасибо за разбор! Добавлю, что в классе Node можно не хранить сам символ в this.val, т.к. все проверки идут через индекс в children.
Viktor
Спасибо за разбор! Добавлю, что в классе Node можно не хранить сам символ в this.val, т.к. все проверки идут через индекс в children.
Спасибо! Это просто удобная штука для дебага, чтобы потом можно было напечатать буковку.
Viktor
А так да, это лишнее.
Viktor
там все 4 семестра алгоритмов, поэтому смотрите на здоровье)
А у тебя 4 семестра были алгоритмы? На каких курсах получается? Что-то для 4 семестров не могу представить сколько ж материала должно быть, видимо с избранными главами 🙂
даня
А у тебя 4 семестра были алгоритмы? На каких курсах получается? Что-то для 4 семестров не могу представить сколько ж материала должно быть, видимо с избранными главами 🙂
1-4 семестр, да там у Паши плейлисты всех 4 семестров, был семестр чисто на графы/потоки, первый семестр про сортировки + дп вроде, второй деревья(?), 3 и 4 не помню
Viktor
хотя ещё бы, 4 семестра. а практика была? экзамены?
даня
хотя ещё бы, 4 семестра. а практика была? экзамены?
да, конечно могу все домашки скинуть
даня
экзамены после каждого семестра + лабы были в кодфорсес
Viktor
да не, мне просто любопытно.
Sergei
Курс full stack open университета Хельсинки стартанул сегодня на 2021 год, он бесплатный и на актуальных технологиях, если кому интересно - https://fullstackopen.com/en/
Sergei
Я начал в прошлом году, в этом надеюсь добью)
Ilia
он совсем базовый получается?
Sergei
да не, мне просто любопытно.
Может твоему племяннику будет интересно
Sergei
он совсем базовый получается?
Ну можно и так сказать, но не для совсем новичков, которые только компьютер увидели
Viktor
Может твоему племяннику будет интересно
Спасибо. Думаю, что обязательно будет, чуть позже только, он сейчас усиленно основы джс разбирает.
Порридж В Ко-ливинге
Да !@#$%&, опять Литкод в Московском метро заблокирован! А я хотел сегодняшнюю с телефона опять решить(
Порридж В Ко-ливинге
В смысле, почему заблокирован?
А я знаю? 🤣 У меня ноута нет, не могу посмотреть что отдает сервер, на мобилке просто только Литкод не грузит)
Evgeniy
Может быть на нем есть ссылки на твиттер, который недавно "замедлили"
Порридж В Ко-ливинге
Evgeniy
Ну с телефона же можно консоль поставить. Или в айфоне её нет?
Ilia
вот и я вступил в клуб, надо бы побольше хардов набрать )
Evgeniy
вот и я вступил в клуб, надо бы побольше хардов набрать )
Поздравляю! 👍🎉 Попробуй решить Word Ladder
Alex Azarov
а мне нечего было делать и я собрал свифт из исходников всего 4 часа билдилось я просто реально долго ждал и мне не с кем поделиться))
Viktor
перепиши её, перепиши её полностью.
Viktor
я шучу если что, и про свифт ничего не знаю. все совпадения случайны.
Viktor
1-4 семестр, да там у Паши плейлисты всех 4 семестров, был семестр чисто на графы/потоки, первый семестр про сортировки + дп вроде, второй деревья(?), 3 и 4 не помню
@qmaroon ещё раз спасибо за курс Паши, посмотрел первый видос и прямо залип. Это очень крутой чувак, который говорит без «научного булшита» на понятном поколению языке, при этом не в ущерб математической строгости.
Viktor
может быть когда-нибудь я сделаю нечто подобное. some day.
Alex Azarov
неплохо. поменял сборку мусора? 😉
в свифте нет сборщика мусора)
Viktor
Будет очень жаль если его переманят из академии в индустрию за мильёны денег.
Viktor
в свифте нет сборщика мусора)
я поэтому и сделал оговорку, что «шучу» и про свифт ничего не знаю 🙂
Viktor
в свифте нет сборщика мусора)
А как же там живут без автоматической сборки мусора? Неужели ручками надо следить?
Viktor
такое себе для современного языка
Alex Azarov
короч там у каждого объекта есть счётчик ссылок на него, если счётчик станет 0, то объект удалится это как бы автоматическая сборка, но ещё не garbage collector
Viktor
что тогда называется garbage collector
Alex Azarov
но сборщика нет) например два объекта могут ссылаться только друг на друга и в свифте будет утечка памяти, а в Java GC их соберёт
Viktor
полуавтомат 😄
Viktor
Зато в джаве 6 разных штук на выбор, подключай любой.
Sergei
Можно как хочешь, там студентам только баллы нужны, а для всех можно в любом порядке, тебе же не нужен сертификат, хотя я не уверен что он там вообще есть)
Alex Azarov
Это какое-то легачи от obj-C?
Ага, самое интересное что в Objective-C раньше был нормальный Garbage collector, но потом депрекейтнули Может подсчёт ссылок оказался эффективнее на слабых телефонах🤔