Недавно я столкнулся с проблемой в интервью, в котором мне дали размер крокодила и массив, представляющий размер рыб в пруду.
Крокодил может питаться рыбами меньше своего размера, и каждый раз, когда он ест эту рыбу, его размер увеличивается на размер этой рыбы. Мы можем выполнять операции двух типов над массивом любое количество раз.
- Удалить любую рыбу из пруда
- Добавить рыбу любого размера в пруд
Учитывая начальный размер крокодила и массив рыб в пруду, мы должны найти минимум нет. таких операций, чтобы очистить массив, представляющий пруд.
Например,
Начальный размер крокодила - 20, а массив рыб -
[10,15,20,30,100]
В этом случае крокодил съедает всех рыб, кроме 100, и его размер становится 85, поэтому одним из решений может быть удаление рыбы с размером 100. Таким образом, результат будет 1.
Каков наилучший из возможных алгоритмов для реализации вышеуказанной проблемы, может ли он быть решен рекурсивно?