您的位置:首页 > 编程语言 > Python开发

给定一个整数数组,找出数组中不存在的最小的正整数。该数组还可以包含重复数和负数。Python实现

2018-07-23 16:18 651 查看
版权声明:如需转载,请联系本人。 https://blog.csdn.net/stronking/article/details/81169542

原题如下:

思路:首先我们的目标是寻找一个从k=1开始最小且不在数组内的的正整数,返回这个正整数。那么我们首先要考虑的就是将整数数组内的负数去除,然后遍历得到的数组,从一开始比较比较数组中最小的数,如果小于数组中最小的数,就输出k=1,否则删除数组中的这个数,比较第二比较小的数,此时k+=1。一次类推开始执行,直到输出k之后,跳出遍历循环,结束程序。

[code]
a =[4,5,0,1,-2,-3]
c = []
#去除负数
for i in a:
if i > 0:
c.append(i)

#如果c数组为空的话,最小正整数为1
if len(c)==0:
print(1)
else:
#否则,取出数组中最小的值
b = min(c)
k = 1
#开始比较
while k <= b:
if k < b:
print(k)
break
while k == b:
#再去除最小,开始比较
c.remove(b)
try:
b = min(c)
except ValueError as error:
print(b+1)
k =  k + 1

嗯,经过一晚上的讨论,还有一下实现方式。2018-7-24实现。 

[code]def serche(list1):
num = 1
while True:
if num not in list1:
print(num)
break
num+=1
s=[1,1,2,3,4,4,4]

serche(s)

 

如有更好的解答方法,请分享一下。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐