版权声明:技术是无罪的,欢迎大家多多交流,转载的地方请注明作者出处!谢谢! https://blog.csdn.net/www_131374/article/details/88733271
什么都想学,但是时间就像海绵里的水,每次挤出来的都是那么一点。。。
话虽如此,还是要向前看,向前跑的!
题目:
给定一个未排序的整数数组,找出其中没有出现的最小的正整数。
示例 1:
输入: [1,2,0]
输出: 3
示例 2:
输入: [3,4,-1,1]
输出: 2
示例 3:
输入: [7,8,9,11,12]
输出: 1
说明:
你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。
咬着指头思索一下,唔。。。。
唔。。。。
想法:
这个数组的长度是从0到n,要求的值是1-n,那么做某个处理之后,数组的长度 + 1,不就是要求的值吗
试试:
就用python写吧,语法简介,顺便学习一下python的语法,
上代码:
ist = []
def cal(index):
length = len(list)
if index >= length:
return
b = int(list[index])
if b > length:
list.remove(str(b))
return cal(index)
elif b <= 0:
list.remove(str(b))
return cal(index)
else:
if b < index + 1:
list.remove(str(b))
return cal(index)
elif b == index + 1:
return cal(index + 1)
else:
c = list[b-1]
list[index] = c
list[b-1] = str(b)
return cal(index)
print('开始')
num = input("输入数字长度:")
for item in range(0, int(num)):
list.append(input("输入第" + str(item + 1) + "个数字:"))
print("给定的整数数组为:")
print(list)
cal(0)
print("要求的值为" + str(len(list) + 1))
print('算法结束')
好像大概没什么问题,接下来就是整理代码,到网上找找大神们的解法,好好学习一下,以后再补充了!