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

缺失的第一个正整数

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
全部评论

相关推荐

11-22 16:49
已编辑
北京邮电大学 Java
美团 质效,测开 n*15.5
点赞 评论 收藏
分享
10-05 11:11
海南大学 Java
投票
理想江南137:感觉挺真诚的 感觉可以试一试
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-30 19:49
起名星人:蛮离谱的,直接要求转投销售
投递汇川技术等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 10:48
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务