Evgeniy
точно так же линейно получается же
Ну да, по памяти только больше
Evgeniy
Хотя. Тут то же самое будет. Просто на каком-то этапе у нас кончатся монеты.
Evgeniy
Смотря как ограничено. Если общее количество монет, то это одно. Если каждой — другое.
Ilia
ну вы вообще решили усложнить ))
Evgeniy
ну вы вообще решили усложнить ))
Ну это тот самый "follow up" :)
Evgeniy
Вот еще задача: https://leetcode.com/problems/minimum-cost-for-tickets/
Sergei
Жадный и правда не прошёл, что это за номиналы монет такие, 408, 186 :)
Ilia
жадный в принципе не оптимальный же
Viktor
На самом деле, это классическая ловушка для такой задачи. Типа логично предположить жадинку, но кандидат должен подобрать контр-пример сам, по-хорошему.
Viktor
Хотя, имхо, если не смог, то лучше его сразу выдать, и не терять время.
Viktor
Выдать контр-пример, в смысле.
Sergei
Условие надо внимательнее читать, я как обычно «ринулся в бой»
Viktor
Условие надо внимательнее читать, я как обычно «ринулся в бой»
Понимаю. Бывал. Это чуть ли не самая частая ошибка на собеседованиях.
Viktor
А в задачах на контестах намеренно примеры подобраны так, чтобы сбить с толку, натолкнуть на очевидное и неправильное решение.
Viktor
Всё для людей 😊
Viktor
Это интересно.
Ilia
подскажите, плз, а по дп есть какие-то нерушимые правила или главное концепция?
Viktor
подскажите, плз, а по дп есть какие-то нерушимые правила или главное концепция?
имхо, самое главное понять по чему именно ты будешь строить дп. зачастую — это ответ на вопрос задачи.
Viktor
в более сложных задачах, уже нет. но как старт — пойдёт.
Ilia
я просто читаю как раз твой разбор и я в целом решил примерно так, но тот же массив допустим сразу заполнял по-другому, и обработку элементов проводил по-другому
Ilia
первая задача на дп, которую я решил, поэтому и возник вопрос 😄
Ilia
60%, 88%
Artyom
Народ! А кто-нибудь здесь занимается написанием смарт контрактов на solidity? Как к этому относитесь?
Viktor
я понял, ты просто значения проставляешь наперёд, а не наоборот.
Viktor
эм, сорри, вот этого я не понял )
мне кажется странным делать data[i + coin] когда ты знаешь, что там ещё ничего нет. логичнее смотреть назад, то есть i - coin, и на каждом шаге соответственно определять data[i], зная, что для меньших значений у тебя уже готовы решения.
Viktor
поэтому и называется подход bottom-up, типа ты строишь решения от меньшего к большему, пока не дойдёшь до нужной тебе суммы.
Ilia
но вот подход bottom up от моего же по сути ничем принципиально не отличается?
Viktor
я вот поэтому и смутился, мне более логичным показалось сразу вверх ползти )
чисто концептуально странно. то есть прикол в том, чтобы зная решения для меньшего размера той же задачи — узнать решения большего размера.
Viktor
типа как рекурсия.
Viktor
но вот подход bottom up от моего же по сути ничем принципиально не отличается?
принципиально, имхо, нет. просто выглядит не очень привычно.
Ilia
попробую еще посмотреть что-нибудь про bottom-up
Artyom
нет, просто спросил. Там просто часто фуллстек нужны, кто с js еще знаком, а сами контракты вроде несложно писать.
Ilia
Что за жадный?
https://ru.wikipedia.org/wiki/%D0%96%D0%B0%D0%B4%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC проще дать ссылку чем объяснять )
Viktor
Что за жадный?
ну жадинка 😉 на жадный алгоритм у меня есть только один разбор https://vitkarpov.me/posts/container-with-most-water/
Ilia
если кратко брать сначала наибольшее значение, а когда они перестанут влезать брать все меньше и меньше
Viktor
нет, просто спросил. Там просто часто фуллстек нужны, кто с js еще знаком, а сами контракты вроде несложно писать.
я просто не знаю зачем их писать 😊 поэтому и спросил, что ты мутишь, если в теме.
Viktor
попробую еще посмотреть что-нибудь про bottom-up
есть ещё вот такая на bottom-up и двумерное дп, может интересно будет https://vitkarpov.me/posts/number-of-dice-rolls-with-target-sum/
Viktor
может как раз попробуешь намапить своё понимание из первой задачи, получится ли написать по аналогии.
Sergei
спасибо, но не уверен что сегодня меня еще хватит на думать ))
Переключайся на видео 😉 мне понравилось, как доступно обьясняет чел с иллюстрациями, подсчетом сложности и тд https://youtu.be/oBt53YbR9Kk
Sergei
Я ещё в процессе вдумчивого просмотра)
Ilia
Переключайся на видео 😉 мне понравилось, как доступно обьясняет чел с иллюстрациями, подсчетом сложности и тд https://youtu.be/oBt53YbR9Kk
я сначала пытаюсь решить сам, потом смотрю подсказки, потом частично решение, если ничего не понял - полностью откладываю, потому что значит еще рано )
Sergei
Я так же делаю, просто изобрести мемоизацию вряд ли получится, когда до этого о ней и не слышал)
Null
Всем привет! 👋 Не мог пройти мимо и не поделиться ссылкой на прекрасный, 5 часовой (!) подробный видос по динамическому программированию. Alvin Zablan из Coderbyte рассказывает про 4 классические задачи: Фибоначчи, количество путей в матрице, сумма из списка чисел (размен монет), конкатенация слова из словаря. https://www.youtube.com/watch?v=oBt53YbR9Kk Отличное поставка задач, рисунки деревьев с анимациями, реальный код в редакторе с комментариями — качество подачи материала огонь. Часть этих задач я разбирал у себя в блоге, поэтому было любопытно сравнить подходы. PS. Изначально ссылкой поделились в чате канала, так я узнал про курс. Добавляйтесь если ещё нет, там интересно и полезно! :-)
Viktor
Причем, я наверное видел этот видос в рекомендациях потому что превьюшка знакомая, но не смотрел реально.
Viktor
Только сегодня сел, и прямо очень крутое качество. Чел этот профессионально ведет курс, конечно.
Viktor
Сегодняшняя задача хороша. Прямо пришлось подумать, чтобы не начать генерить все двоичные числа, класть в сет, и потом проверять все подстроки на совпадения.
Viktor
Сначала так и хотел делать, но потом понял.
Evgeniy
Я в сет клал и проверял, набрали ли уже там нужное количество чисел
Viktor
Придумал что-то другое?
Ну я просто когда сложил все числа в сет, то понял, что их всегда ровно 2^k, логично же
Volodymyr
а что имееться ввиду под "Сегодняшняя задача"? Есть дейли таски?
Evgeniy
а что имееться ввиду под "Сегодняшняя задача"? Есть дейли таски?
https://leetcode.com/explore/challenge/card/march-leetcoding-challenge-2021/589/week-2-march-8th-march-14th/3669/
Evgeniy
Да, литкод ежедневные даёт
Volodymyr
спс
Volodymyr
До одного прекрасного случая не думал что уметь в алго важно в веб-дев
Volodymyr
Однажды надо было собрать дерево из clojure table, я знатно тупил. И где-то в этот период попал на блог @vitkarpov.  Спс, кароче )
Volodymyr
И как, собрал дерево? Что за задача была прикладная?
Задача: в веб апп есть группы доступов, которые представлены в виде clojure table [ acnestorId: 1, descendantId: 2, level: 0 ] в бд. Надо было собрать дерево груп ). Пройтись по всем записям и рекурсивно вставить групы правильным родителям.
Volodymyr
Не сильно сложная (как сейчас кажется) 😄