Leetcode1090. 受标签影响的最大值

思路:根据值从大到小排序,然后在加的时候判断是否达到标签上限即可,一开始想用字典做,但是题目说是集合却连续出现两个8,因此使用元组+SortedList进行解决

python 复制代码
class Solution:
    def largestValsFromLabels(self, values: list[int], labels: list[int], numWanted: int, useLimit: int) -> int:
        from sortedcontainers import SortedList
        from collections import defaultdict
        sorted_values = SortedList()
        for num in range(0, len(labels)):
            sorted_values.add((values[num], labels[num]))
        total_sum = 0
        label_dict = defaultdict(int)
        for value_label in reversed(sorted_values):
            value = value_label[0]
            label = value_label[1]
            if label_dict[label] < useLimit:
                if numWanted > 0:
                    numWanted -= 1
                    total_sum += value
                    label_dict[label] += 1
                else:
                    return total_sum
        return total_sum
相关推荐
XW01059991 分钟前
6-函数-1 使用函数求特殊a串数列和
数据结构·python·算法
季明洵6 分钟前
Java简介与安装
java·开发语言
myloveasuka8 分钟前
红黑树、红黑规则、添加节点处理方案
开发语言·算法
m0_569881479 分钟前
使用Python进行网络设备自动配置
jvm·数据库·python
2301_810160959 分钟前
C++中的访问者模式高级应用
开发语言·c++·算法
m0_5180194812 分钟前
C++中的享元模式
开发语言·c++·算法
林夕sama13 分钟前
多线程基础(五)
java·开发语言·前端
波诺波13 分钟前
项目pid-control-simulation-main 中的 main.py 代码讲解
开发语言·python
我带你来这儿就是为了告诉你我17 分钟前
C++23新特性前瞻
开发语言·c++·算法