Python 数组中查找第 k 个缺失正数的程序


假设我们有一个名为 nums 的数组,其中包含严格递增的正排序值,还有一个整数 k。我们必须找到此数组中缺失的第 k 个正整数。

因此,如果输入类似于 nums = [1,2,4,8,12],k = 6,则输出将为 10,因为缺失的数字为 [3,5,6,7,9,10,11],这里的第 6 项是 10。

为了解决这个问题,我们将遵循以下步骤:

  • nums := 从 nums 中存在的元素创建一个新的集合

  • count := 0

  • num := 1

  • 当 count < k 时,执行以下操作:

    • 如果 num 不在 nums 中,则

      • count := count + 1

    • 如果 count 等于 k,则

      • 返回 num

    • num := num + 1

  • 返回 num

示例 (Python)

让我们看看下面的实现,以便更好地理解:

 在线演示

def solve(nums, k):
   nums = set(nums)
   count = 0
   num = 1
   while count < k:
      if num not in nums:
         count += 1
      if count == k:
         return num
      num += 1
   return num

nums = [1,2,4,8,12]
k = 6
print(solve(nums, k))

输入

[1,2,4,8,12], 6

输出

10

更新于:2021年5月17日

531 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.