dlist
будет пустым для i
, для которого cars[i].x
имеет наибольшее значение.Для этого i
тест cars[j].x > cars[i].x
никогда не будет верным, поэтому вы никогда не добавите ничего к dlist
.
. Как вы можете видеть в своих выходных данных, именно это происходит: в первой итерации над i
вы найдете все машины с x
больше, чем 53: [93, 72, 55]
, и вы также напечатаете 55. На следующей итерации вы найдете все машины с x
больше, чем 93. Такой машины нет, следовательно, вы получаете пустуюdllist []
, а затем min
вызывает исключение.
Вам придется либо трактовать особый случай пустого явно, либо использовать >=
вместо >
в своем тесте.
И между прочим, не будет ли быстрее / проще просто отсортировать автомобили по x
?Затем в позиции k
в отсортированном списке у вас есть минимальная машина среди всех машин, у которых x
больше или равно cars[k].x
.