使用Python查詢K次移除後唯一整數的最少數量的程式


假設我們有一個名為nums的陣列,其中只儲存整數。如果我們有一個數字k,我們必須找到移除恰好k個元素後唯一元素的最少數量。

因此,如果輸入類似於nums = [5,4,2,2,4,4,3],k = 3,則輸出將為2,因為如果我們移除5和3,以及任一個2或任一個4,則只剩下2和4。

為了解決這個問題,我們將遵循以下步驟:

  • 字典:=一個新的對映

  • 對於nums中的每個num,執行:

    • 如果num不在字典中,則

      • 字典[num]:= 1

    • 否則,

      • 字典[num] := 字典[num] + 1

  • 計數:= 字典的大小

  • 對於字典所有值的排序順序中的每個頻率,執行:

    • k := k - 頻率

    • 如果k < 0,則

      • 返回計數

    • 否則,

      • 計數 := 計數 - 1

  • 返回計數

讓我們看看下面的實現,以便更好地理解:

示例

即時演示

def solve(nums, k):
   dictionary={}
   for num in nums:
      if num not in dictionary:
         dictionary[num]=1
      else:
         dictionary[num]+=1
   count=len(dictionary)
   for frequency in sorted(dictionary.values()):
      k-=frequency
      if(k<0):
         return count
      else:
         count-=1
   return count
nums = [5,4,2,2,4,4,3]
k = 3
print(solve(nums, k))

輸入

[5,4,2,2,4,4,3], 3

輸出

2

更新於:2021年5月29日

735 次瀏覽

開啟您的職業生涯

完成課程後獲得認證

開始
廣告