Ресторан(10)

  • 32
  • Недоступна
Рекурсию используют тогда, когда алгоритм решения задачи совпадает с алгоритмом решения подзадачи (части). У нас как раз такой случай. Нам нужно сделать полный перебор всех вариантов и выбрать из них лучший. Напомню, рекурсия пишется по следующему принципу: а) условие выхода/окончания рекурсии б) у
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (267)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Михаил
Уровень 51, Санкт-Петербург, Russian Federation
12 марта, 11:23
Надеюсь, сэкономит кому-то время. Долго не мог понять как выполнить проверку требования. - "В набор должны отбираться только ролики с положительным числом показов.". (учитывая что поле hits у нас приватное и геттера нет). Как оказалось в задании авторы забыли упомянуть что можно создавать еще нужные вспомогательные методы в классе Advertisment.
Евгений
Уровень 31, Санкт-Петербург
8 марта, 10:42
Тот случай, когда неделю решал задачу и вот вроде всё готово, но.... Выведи строку
First Video is displaying... 50, 277
и твой мозг просто уже отказывается это обрабатывать... Блин, почему 277? Почему не 0.277? Задача итак попила кровушки... Короче никаких String.format или substring не нужно. Просто переопределите toString в классе Advertisement:
return name + " is displaying... " + amountPerOneDisplaying + ", " + amountPerOneDisplaying * 1000 / duration;
Alexey
Уровень 33, Москва, Россия
23 февраля, 15:19
Мега сложная и одновременно интересная задача с необходимостью изучения методов решения задачи про рюкзак с динамическим программированием, жадным алгоритмом и полным перебором. Валидатор - бяка! Рисовал всё красным из-за toString()-a. Будьте внимательны! Всем удачи!
Виталий
Уровень 31, Москва, Россия
11 февраля, 17:20
На попытки решить задачу потратил 3 дня, решил методом "рюкзака" про который многократно упоминалось в комментариях. Но при этом решении был верный вывод, но валидатор даже не проверял ее, говорил что слишком долго. Вычитал в комментариях, что в рекурсивный метод можно отправлять не весь список, а предварительно отобрав из него только те ролики которые вписываются по времени и у которых остались показы. и таким образом валидатор дал добро. Но в комментариях встречал мнения( если я верно понял) что при подобном решении валидатор будет снова не доволен на 16 задаче. Будем проверять
Алексей Терешин
Уровень 41, Самара, Россия
22 января, 19:40
Самое сложное в этой задаче понять что необходимо сделать я создавал самый выгодный список один и все прошло ошибка была выводил 0,277 , а надо было 277 из за этого первые 5 пунктов валидации не проходило
LuneFox богатый программист в далёких мечтах Expert
25 ноября 2021, 16:20
Хм... сделал, закрыв не совсем все условия, но валидатор принял. 0) Создаю в классе список, который будет хранить ролики для показа. 1) Пишу компаратор, который выводит сначала самые оплачиваемые ролики. 2) Пишу метод, который делает следующее: - сортирует список из хранилища по компаратору - для каждого видео в списке, если оно умещается по времени, а также имеет положительное количество оставшихся просмотров и ещё не находится в списке для показа, добавляю его в список роликов для показа, также добавляю в свежесозданный вспомогательный список - если в конце работы метода вспомогательный список не пустой, рекурсивно вызываю этот же метод - когда больше никакие ролики не подойдут, вспомогательный список окажется пустым и метод завершится 3) Сортирую получившийся список на показ ещё раз по тому же самому компаратору. Сдал с 3-й попытки - в первый раз забыл убрать временную строчку, которую выводил в консоль, второй раз забыл не показывать видео, число оплаченных просмотров которых закончилось.
Valerii
Уровень 35, Москва, Россия
20 ноября 2021, 22:50
Для понимания того как решать такие задачи очень помогло это видео Видео Там есть ссылка на гит и решение всяких разных похожих задач.
Лейтенант Ден
Уровень 31, Москва, Россия
17 ноября 2021, 11:16
чокнутый валидатор. Мучил меня, когда уже результат был правильный, но по двум пунктам не пропускал. Искал решения и так и эдак и вот сделал откат решения, нажал на проверку и о чудо! Взял и принял. Ничего не понимаю, но главное прорвался!
Максим Дудин
Уровень 36, Калининград
27 октября 2021, 17:07
решил в меру понятия, проверил по мере возможности на соответствие всем требованиям, всё как в выводе. Гарантировано не прошёл валидацию... скопировал готовое решение (иначе это уже всё слишком на долго затягивается 2,5 недели) ну вот разве что надо будет всё таки в готово решении разобраться что и почему как
RFedorenkov
Уровень 47, Москва, Россия
28 октября 2021, 18:47
Совет Если копируешь готовое решение, то на последнем уровне сбрось прогресс и попробуй решить задачу самому, пусть даже через пару месяцев. Она не очень сложная. p.s. дальше хуже будет)))) особенно на стажировке (думаю забить до следующей)
Damir
Уровень 33
8 февраля, 01:20
У меня и готовое решение не принимает(((
Evgeny
Уровень 31, Владимир
29 сентября 2021, 07:48
Получилось по принципу "рюкзака"! Комментарий Maxim Dimitrov помог не улетать в тайм-аут при проверке!