逻辑:
1.创建一个和数组等长的数字且全部初始化成0,用于存储对应的位是否出现
2.遍历数组,将符合条件的数写入数组对应的位
3.查找第一个0的位置即最小的没出现的正整数
参考代码:
def TEST_DO_NOT_CHANGE(nums):
print(nums)
result = None
##########开作答
length = len(nums)
temp = [0] * length
for x in nums:
if x > 0 and x <= length:
temp[x - 1] = x
result = temp.index(0) + 1
#########结束作答
return result
i = 0
while i < len(nums):
if nums[i]>=1 and nums[i]<=len(nums):
if nums[i] == i + 1:
i += 1
else:
if nums[i] != nums[nums[i]-1]:
tmp = nums[nums[i]-1]
nums[nums[i]-1] = nums[i]
nums[i] = tmp
else:
nums[i]=-1
i += 1
else:
nums[i]=-1
i+=1
for i in range(len(nums)):
if nums[i] < 1:
result = i + 1
break
if result is None:
result = len(nums) + 1