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.