假设我们有一个排序的唯一数字列表,分别称为nums和一个整数k,我们必须从给定列表的第一个元素中找到第k个缺失数字。
因此,如果输入类似于nums = [5,6,8,10,11],k = 1,则输出将为9,因为9是第二个(索引1)缺失数字。
为了解决这个问题,我们将遵循以下步骤-
对于范围为1到nums的i
返回nums [i-1] + k + 1
k:= k-差异
diff:= nums [i]-nums [i-1]-1
如果k> = diff,则
除此以外,
返回数字[-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