Предположим, что в последовательности последовательных целых чисел отсутствуют два элемента, а отсутствующие элементы лежат между первым и последним элементами. Я написал код, который выполняет задачу. Тем не менее, я хотел сделать его эффективным, используя меньшее количество циклов, если это возможно. Любая помощь будет оценена. Также, как насчет условия, когда нам нужно найти больше недостающих элементов (например, близких к n/4) вместо 2. Я думаю, что тогда мой код должен быть эффективным, потому что я выхожу из цикла раньше?
def missing_elements(L,start,end,missing_num):
complete_list = range(start,end+1)
count = 0
input_index = 0
for item in complete_list:
if item != L[input_index]:
print item
count += 1
else :
input_index += 1
if count > missing_num:
break
def main():
L = [10,11,13,14,15,16,17,18,20]
start = 10
end = 20
missing_elements(L,start,end,2)
if __name__ == "__main__":
main()