LeetCode 1090. 受标签影响的最大值(优先队列)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1090. 受标签影响的最大值(优先队列)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
我們有一個項的集合,其中第 i 項的值為 values[i],標簽為 labels[i]。
我們從這些項中選出一個子集 S,這樣一來:
- |S| <= num_wanted
- 對于任意的標簽 L,子集 S 中標簽為 L 的項的數目總滿足 <= use_limit。
返回子集 S 的最大可能的 和。
示例 1: 輸入:values = [5,4,3,2,1], labels = [1,1,2,2,3], num_wanted = 3, use_limit = 1 輸出:9 解釋:選出的子集是第一項,第三項和第五項。示例 2: 輸入:values = [5,4,3,2,1], labels = [1,3,3,3,2], num_wanted = 3, use_limit = 2 輸出:12 解釋:選出的子集是第一項,第二項和第三項。示例 3: 輸入:values = [9,8,8,7,6], labels = [0,0,0,1,1], num_wanted = 3, use_limit = 1 輸出:16 解釋:選出的子集是第一項和第四項。示例 4: 輸入:values = [9,8,8,7,6], labels = [0,0,0,1,1], num_wanted = 3, use_limit = 2 輸出:24 解釋:選出的子集是第一項,第二項和第四項。提示: 1 <= values.length == labels.length <= 20000 0 <= values[i], labels[i] <= 20000 1 <= num_wanted, use_limit <= values.length來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/largest-values-from-labels
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 數據按標簽分入各自的優先隊列中
- 每個優先隊列取出前面最大的 use_limit 個到一個大的優先隊列 q 中
- 把 q 中的前 num_wanted 個取出來求和就是答案
200 ms 77.2 MB
總結
以上是生活随笔為你收集整理的LeetCode 1090. 受标签影响的最大值(优先队列)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1293. 网格中的最
- 下一篇: LeetCode 643. 子数组最大平