用 Python 编写程序从元素列表中查找第 k 个缺失数字

pythonserver side programmingprogramming更新于 2026/1/17 21:00:17

假设我们有一个排序的唯一数字列表,称为 nums 和一个整数 k,我们必须从给定列表的第一个元素中查找第 k 个缺失数字。

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

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

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

    • 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

相关文章


有用资源