Я слишком долго смотрю на это и не вижу дрова для деревьев. Я впервые смотрю на кучи в Python, и я не могу понять, как поместить условие, чтобы получить нужное мне значение.
У меня есть список кортежей, который передается в функцию .
reqs = [(1, 4), (2, 5), (5, 8)]
myFunc(reqs)
в функции I heapify, затем вытолкнуть первый кортеж и сохранить его второе значение, «время окончания».
def myFunc(requests):
heapq.heapify(requests)
while(len(requests) != 0):
endTime = heapq.heappop(requests)[1]
Затем я хочу получить следующее значение, которое удовлетворяет условию, когда первый di git в кортеже больше, чем endTime. 4 - время окончания. Итак, первое значение, которое удовлетворяет условию, это (5,8), так как 5 больше, чем 4, поэтому я хочу вспомнить следующее.
Я пробовал nSmallest с ключом, но не могу заставить это работать. Я могу попробовать пройтись по куче, чтобы найти и элемент, который соответствует моему состоянию, но тогда как мне вставить этот элемент? Я уверен, что это базовая c проблема, но мне нужна помощь!
Заранее спасибо.