假设我们在一个连续整数序列中丢失了两项,并且丢失的元素位于第一个和最后一个元素之间。我确实编写了一个完成任务的代码。但是,如果可能的话,我想使用更少的循环来提高效率。任何帮助将不胜感激。另外,当我们必须找到更多丢失的项目(比如接近 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()