题解 | #数组中未出现的最小正整数#

数组中未出现的最小正整数

http://www.nowcoder.com/practice/8cc4f31432724b1f88201f7b721aa391

很玄学,用符号代表数字是否在arr中出现过。
牛客的测试样例不完整,建议取leetcode官网:https://leetcode.com/problems/first-missing-positive/solution/

#
# return the min number
# @param arr int整型一维数组 the array
# @return int整型
#
class Solution:
    def minNumberdisappered(self , arr ):
        # write code here
        if 1 not in arr:
            return 1
        else:
            n = len(arr)
            for i in range(n):
                if arr[i] <= 0 or arr[i] > n:
                    arr[i] = 1
            for i in range(n):
                a = abs(arr[i])
                if a == n:
                    arr[0] = -abs(arr[0])
                else:
                    arr[a] = -abs(arr[a])
            for i in range(1, n):
                if arr[i] > 0:
                    return i
            if arr[0] > 0:
                return n
            else:
                return n+1
全部评论

相关推荐

迷茫的大四🐶:干脆大厂搞个收费培训得了,这样就人均大厂了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-11 19:51
已编辑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务