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.