题目描述:给出一个无序的整数数组,找出其中没有出现的最小正整数。
样例:
换个角度思考这个问题,我们只需要将数组做一种特殊的排序,使得正整数“诸神归位”(例如[3, 4, -1, 1]中令1在第一位,3在第三位,4在第四位,也就是变成[1, -1, 3, 4]),那么第一个对不上的位所代表的正整数就是第一个缺失的,例如,在前面的例子中数组第二位是-1,而不是2,那么2就是丢失的第一个正整数。这是什么思想呢?当然是桶排序了(有关桶排序的介绍详见:点击打开链接)
好了,这道题的解法就是借助桶排序(当然是经过细微改变的桶排序)来实现正整数的“归位”,再查找第一个没有对应数的位。代码如下:
class Solution:
# @param A, a list of integers
# @return an integer
def firstMissin