LeetCode 1838. 最高频元素的频数(二分查找)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1838. 最高频元素的频数(二分查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
元素的 頻數 是該元素在一個數組中出現的次數。
給你一個整數數組 nums 和一個整數 k 。
在一步操作中,你可以選擇 nums 的一個下標,并將該下標對應元素的值增加 1 。
執行最多 k 次操作后,返回數組中最高頻元素的 最大可能頻數 。
示例 1: 輸入:nums = [1,2,4], k = 5 輸出:3 解釋:對第一個元素執行 3 次遞增操作,對第二個元素執 2 次遞增操作, 此時 nums = [4,4,4] 。 4 是數組中最高頻元素,頻數是 3 。示例 2: 輸入:nums = [1,4,8,13], k = 5 輸出:2 解釋:存在多種最優解決方案: - 對第一個元素執行 3 次遞增操作,此時 nums = [4,4,8,13] 。 4 是數組中最高頻元素,頻數是 2 。 - 對第二個元素執行 4 次遞增操作,此時 nums = [1,8,8,13] 。 8 是數組中最高頻元素,頻數是 2 。 - 對第三個元素執行 5 次遞增操作,此時 nums = [1,4,13,13] 。 13 是數組中最高頻元素,頻數是 2 。示例 3: 輸入:nums = [3,9,6], k = 2 輸出:1提示: 1 <= nums.length <= 10^5 1 <= nums[i] <= 10^5 1 <= k <= 10^5來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/frequency-of-the-most-frequent-element
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 對數字進行排序(只有小的數能通過操作變成大的數),并求前綴和
- 二分求解最大頻次
- 每次二分的時候,遍歷一次前綴和數組,以某位置為最大頻數的數字,能不能滿足要求?根據結果,調整區間
類似題目:
LeetCode 1231. 分享巧克力(極小極大化 二分查找)
272 ms 84 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1838. 最高频元素的频数(二分查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 2042. 检查句子中
- 下一篇: python web框架基础