map:最小未出现数字

考点:哈希表

  • 使用计数数组版本
使用数组B标识,下标为自然数,数值为是否在数组A出现
  • bit map
# -*- coding:utf-8 -*-
import sys

def test_func(input_list):
    bit_list = [0 for num in range(len(input_list))]

    for i in input_list:
        if i > 0:
            bit_list[i - 1] = 1

    print bit_list

    for index, i in enumerate(bit_list):
        if i == 0:
            return index + 1

    return -1

if __name__ == '__main__':
    # 时间复杂度: N, 空间复杂度:1
    # 输入形式: [-5,1,2,4]
    input_str = input("input: ")
    print test_func(list(input_str))

你可能感兴趣的:(map:最小未出现数字)