本文主要是介绍给定一个整数数组,找出数组中不存在的最小的正整数。该数组还可以包含重复数和负数。Python实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题如下:
思路:首先我们的目标是寻找一个从k=1开始最小且不在数组内的的正整数,返回这个正整数。那么我们首先要考虑的就是将整数数组内的负数去除,然后遍历得到的数组,从一开始比较比较数组中最小的数,如果小于数组中最小的数,就输出k=1,否则删除数组中的这个数,比较第二比较小的数,此时k+=1。一次类推开始执行,直到输出k之后,跳出遍历循环,结束程序。
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)breakwhile k == b:#再去除最小,开始比较c.remove(b)try:b = min(c)except ValueError as error:print(b+1)k = k + 1
嗯,经过一晚上的讨论,还有一下实现方式。2018-7-24实现。
def serche(list1):num = 1while True:if num not in list1:print(num)breaknum+=1
s=[1,1,2,3,4,4,4]serche(s)
如有更好的解答方法,请分享一下。
这篇关于给定一个整数数组,找出数组中不存在的最小的正整数。该数组还可以包含重复数和负数。Python实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!