首页 > 试题广场 >

找缺失数字

[编程题]找缺失数字
  • 热度指数:2573 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个按自然数顺序递增用逗号分割的数组,请找出其中第一个缺失的数。

例如 0 , 1 , 2 , 3 , 4 , 5 , 7 , 8 中,第一个缺失的数是 6。
        0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 中,第一个缺失的数是 7。

数据范围:

输入描述:
给定一个以逗号(,)分割的数字串。


输出描述:
输出缺失的数字
示例1

输入

0,1,2,3,4,5,7

输出

6
示例2

输入

0,1,2,3,4,5,6,7

输出

8
遍历一次,看到不对的情况输出退出。

class MainActivity:

    def main(self):
        # Read the data
        nums = list(map(int, filter(lambda x: len(x) > 0, input().split(','))))
        if not nums:
            print(0)
            return
        # Traverse
        for ptr, num in enumerate(nums):
            if ptr != num:
                print(ptr)
                return
        print(num + 1)


if __name__ == '__main__':
    M = MainActivity()
    M.main()
发表于 2024-08-24 16:21:16 回复(0)