题解 | 缺失的第一个正整数
缺失的第一个正整数
https://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型 # class Solution: def minNumberDisappeared(self , nums: List[int]) -> int: # write code here data = sorted(nums) print(data) #筛选出正数 data1 = [] for i in data: if i > 0: data1.append(i) if len(data1) == 0: return 1 if data1[0] > 1: return 1 for i in range(len(data1)): if i + 1 < data1[i]: return i+1 return 1+ data1[-1]
还是要感慨python代码实现算法如此简单,这个题目只要考虑几种情况肯定能做出来。最小正整数就是从1开始的,所以通过遍历正整数的list中,如果下表大于index+1,返回这个index+1即可。
如果全部是负数就返回1
如果list中数据都等于index+1,那么就返回data[-1]+1就可以了,也就是list的最大值+1