缺失的第一个正数

 

func firstMissingPositive(nums []int) int {
    size:=len(nums)
    for i:=0;i<size;i++{
        if nums[i]<=0{
            nums[i]=size+1
        }
    }

    for i:=0;i<size;i++{
        origin:=abs(nums[i])
        if origin<=size{
            nums[origin-1]=-abs(nums[origin-1])  //注意要取绝对值
        }
    }
    for i:=0;i<size;i++{
        if nums[i]>0{
            return i+1
        }
    }
    return size+1
}
func abs(a int) int{
    if a < 0{
        return -1*a
    }
    return a
}

 

posted @ 2022-06-05 15:18  知道了呀~  阅读(53)  评论(0编辑  收藏  举报