Найдите минимум конфет, оставшихся после соблюдения заданных правил.

Опубликовано: 25 Февраля, 2023

У гика есть N пачек конфет, и количество конфет в каждой пачке указано в массиве arr[] . Его сестра хочет иметь пачку шоколада. Жадные гики выберут пачки с большим количеством конфет, но он может выбрать либо первую, либо последнюю. Найдите, сколько шоколадок достанется его сестре.

Примеры:

Input: arr[ ] = {5, 3, 1, 6, 9}
Output: 1
Explanation: Geek will have the packs with chocolates
5, 3, 6, 9.

Input: arr[ ] = {5, 9, 2, 6}
Output:  2

Подход: Задачу можно решить, используя следующее наблюдение:

As Geek is picking chocolate packs greedily, so he can always make sure that the pack with the minimum number of chocolates is left at the end.

Для реализации идеи выполните следующие шаги:

  • Объявите переменную (скажем, ans ) и инициализируйте ans = arr[0] для хранения минимального количества конфет.
  • Итерация от i = 1 до N-1:
    • Если значение arr[i] меньше, чем ans, обновить ans = arr[i] .
  • Окончательное значение, сохраненное в ans , будет минимальным значением. Так что верните ans в качестве требуемого ответа.

Ниже приведена реализация описанного выше подхода.

Временная сложность: O(N) Поскольку мы проходим через массив один раз
Вспомогательное пространство: O(1), так как мы не используем дополнительное пространство.