Python程式:查詢最頻繁元素的頻率


假設我們有一個數組 nums 和另一個值 k。在一次操作中,我們可以選擇 nums 的一個索引並將該索引處的元素增加 1。我們必須找到在最多執行 k 次操作後元素的最大可能頻率。

因此,如果輸入類似於 nums = [8,3,6], k = 9,則輸出將為 3,因為我們可以將 3 增加 5,將 6 增加 2,使其變為 [8,8,8],因此在 7 次操作後,我們具有最大頻率 3。

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

  • 對列表 nums 進行排序

  • left := 0, right := 1

  • 當 right < nums 的大小 時,執行以下操作:

    • k := k -(nums[right] - nums[right-1]) *(right - left)

    • 如果 k < 0,則

      • k := k + nums[right] - nums[left]

      • left := left + 1

    • right := right + 1

  • 返回 right - left

示例

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

def solve(nums, k):
   nums.sort()
   left = 0
   right = 1

   while right < len(nums):
      k -= (nums[right] - nums[right-1]) * (right - left)

      if k < 0:
         k += nums[right] - nums[left]
         left += 1

      right += 1

   return right - left

nums = [8,3,6]
k = 9
print(solve(nums, k))

輸入

[8,3,6], 9

輸出

3

更新於:2021年10月7日

529 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.