1. 程式人生 > >第一個缺失正數

第一個缺失正數

描述

給出一個無序的數列,找出其中缺失的第一個正數,要求複雜度為 O(n)
如:[1,2,0],第一個缺失為3。
如:[3,4,-1,1],第一個缺失為2。

輸入

1,2,0

輸出

3

輸入樣例

1,2,0↵ 3,4,-1,1↵ -1,-3,-5↵ 1,2,3↵ -1,-10,0

輸出樣例

3 2 1 4 1

# 此處可 import 模組

"""
@param string line 為單行測試資料
@return string 處理後的結果
"""
def solution(line):
    # 縮排請使用 4 個空格,遵循 PEP8 規範
    # 返回處理後的結果
    nums = line.strip().split(',')
	nums = list(map(int, nums))
    hashmap = {}
    min_val = float('inf')
    for num in nums:
        hashmap[num] = 1
        if num > 0 and min_val > num:
            min_val = num
    if min_val == float('inf'):
        return 1
    while True:
        min_val += 1
        if min_val not in hashmap:
            return min_val
    return