У меня небольшая проблема с решением проблемы заправки автомобиля с использованием алгоритма Жадности.
Введение задачи
Вы собираетесь поехать в другой город, который расположен в ? милях от вашего родного города. Ваша машина может проехать не более ? миль на полном баке, и вы начинаете с полным баком. На вашем пути есть автозаправочные станции на расстоянии stop1 stop2. , , Остановись из твоего родного города. Какое минимальное количество пополнений необходимо?
Входные данные:
950
400
4
200 375 550 750
Выходные данные:
2
Что я пробовал с сейчас
def car_fueling(dist,miles,n,gas_stations):
num_refill, curr_refill, last_refill = 0,0,0
while curr_refill <= n:
last_refill = curr_refill
while (curr_refill <= n-1) & (gas_stations[curr_refill + 1] - gas_stations[last_refill] <= miles):
curr_refill += 1
if curr_refill == last_refill:
return -1
if curr_refill <= n:
num_refill += 1
return num_refill
В чем проблема, с которой я сталкиваюсь
В заявлении
while (curr_refill <= n-1) & (gas_stations[curr_refill + 1] - gas_stations[last_refill] <= miles)
Я получаю ошибку IndexError: list index out of range
. Это из-за gas_stations[curr_refill + 1]
. Поэтому, когда я пытаюсь разделить его как while
l oop и оператор if
, как в
while (curr_refill <= n-1):
if (gas_stations[curr_refill + 1] - gas_stations[last_refill] <= miles):
curr_refill += 1
else:
break
, он входит в бесконечное l oop.
Не могли бы вы указать на ошибку, с которой я столкнулся?
Заранее спасибо.