题解 | #缺失的第一个正整数#

缺失的第一个正整数

http://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5

原地哈希,利用下标值作为哈希的一部分

class Solution:
    def minNumberDisappeared(self , nums: List[int]) -> int:
        # write code here
        # 原地哈希
        res = -1
        if not nums:
            return 1
        len_nums = len(nums)
        # 先遍历数组将所有小于0的元素都改成n + 1
        for i in range(len_nums):
            if nums[i] < 0:
                nums[i] = len_nums + 1
        for i in range(len_nums):
            temp = abs(nums[i])
            if temp > 0 and temp <= len_nums:
                nums[temp - 1] = - abs(nums[temp - 1])
        for i in range(len_nums):
            if nums[i] > 0:
                res = i + 1
                break
        if i == len_nums - 1 and res == -1:
            res = len_nums + 1
        return res
全部评论

相关推荐

在努力的外卷侠很靠谱:怎么,大家都没保底吗?我这美团已经入职了,不说了,系统派单了。
点赞 评论 收藏
分享
10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
头像
昨天 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗?&nbsp;刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务