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

缺失的第一个正整数

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

#coding:utf-8
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param nums int整型一维数组 
# @return int整型
#
class Solution:
    def minNumberDisappeared(self , nums ):
        # write code here
        #思路:
        ##1、维护一个数组, [0, 1, 2, ..., n]
        ##2、如果数k出现,就给数组的[k] 标记为1,然后找没有被置1的那个数。
        ##如果全部出现就是n + 1没出现
        
        ##init
        n = len(nums)
        flag_arr = [0 for i in range(0, n + 1)]
        print ("Flag arr len: ", len(flag_arr))
        ##process
        for i in range(0, n):
            cur_val = nums[i]
            if cur_val > 0 and cur_val <= n:
                flag_arr[cur_val] = 1
        print ("Flag arr: ", flag_arr)
        target = n + 1
        for i in range(1, n + 1):
            if flag_arr[i] != 1:
                target = i
                break

        return target


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务