Python程序:查找列表中第k个缺失数字


假设我们有一个名为nums的有序唯一数字列表和一个整数k,我们需要找到给定列表的第一个元素中第k个缺失的数字。

例如,如果输入是nums = [5,6,8,10,11],k = 1,则输出将是9,因为9是第二个(索引1)缺失的数字。

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

  • 对于i从1到nums的大小,执行:

    • diff := nums[i] - nums[i - 1] - 1

    • 如果k >= diff,则:

      • k := k - diff

    • 否则:

      • 返回nums[i - 1] + k + 1

  • 返回nums[-1] + k + 1

让我们看看下面的实现来更好地理解:

示例

在线演示

class Solution:
   def solve(self, nums, k):
      for i in range(1, len(nums)):
         diff = nums[i] - nums[i - 1] - 1
         if k >= diff:
            k -= diff
         else:
            return nums[i - 1] + k + 1
      return nums[-1] + k + 1

ob = Solution()
nums = [5,6,8,10,11]
k = 1
print(ob.solve(nums, k))

输入

[5,6,8,10,11], 1

输出

9

更新于:2020年10月9日

468 次浏览

开启你的职业生涯

完成课程获得认证

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