gpt4 book ai didi

python - 如何在数组中找到所有未使用的和第一个缺失的数字(在 Python 中)?

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:56 28 4
gpt4 key购买 nike

我是 python 的新手,我需要帮助来尝试查找数组中所有未使用的和第一个未使用/缺失的数字(在 python 2.7.3 中)?

该数组长度为 20,由应用程序使用。当应用程序启动时,数组是空的,但当用户开始填充它时,我需要找到所有未使用的数字和第一个未使用的数字。

可以把它想象成一个 parking 场,有 20 个 parking 位,编号为 1 到 20。当人们开始 parking 时, parking 位就会被填满。人们不一定按顺序 parking ,两个人可能会停在第 1 和第 16 个 parking 位,所以我需要找到所有缺失的 parking 位和第一个未使用的 parking 位。

以 parking 为例,帮助您理解我要传达的信息。数组将始终为整数,并将保存 1 到 20 之间的值。

下面是代码应该做什么

启动时,myArray 为空:

myarray = []

所以第一个缺失的数字应该是 1(即把车停在第一个位置)

missingNumbers = [1,2,3,.......20]
firstMissingNoInMyArray = 1

当数组中的空格被填满后,数组看起来像这样

myarray = [1, 5, 15]

所以第一个缺失的数字和缺失的数字是:

missingNumbers = [2,3,4,6,7,8,9,10,11,12,13,14,16,17,18,19,20]. 
firstMissingNoInMyArray = 2

我需要同时查看缺失号码列表和第一个缺失号码,谁能帮助我编写 Python 代码,我只能使用 Python 2.7.3;如果你有 Python 3 的解决方案,请写下来,它可能对 Python 3 用户有帮助。

非常感谢。

最佳答案

您可以使用 set 然后您可以简单地减去这些集合。为了查看第一个缺失的数字,您可以在结果集中取 min:

all_nums = set(xrange(1, 21))
arr = set(xrange(5, 10))

print all_nums - arr
print min(all_nums - arr)
# note that sets are unordered
>> {1, 2, 3, 4, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}
1

应该适用于 Python 2.7.3,但无论如何您都应该考虑升级。 Python 2.7.3 已经 7 岁了。

关于python - 如何在数组中找到所有未使用的和第一个缺失的数字(在 Python 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38977776/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com