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
相关推荐
weixin_649555671 分钟前
C语言程序设计第四版(何钦铭、颜晖)第八章指针之在数组中查找指定元素
c语言·开发语言
2401_832035341 分钟前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
七夜zippoe2 分钟前
Elasticsearch全文搜索与数据分析实战指南
大数据·python·elasticsearch·数据分析·全文搜索
add45a5 分钟前
C++中的原型模式
开发语言·c++·算法
代码s贝多芬的音符5 分钟前
Android NV21 转 YUV 系列格式
android·开发语言·python
2401_844221326 分钟前
C++类型推导(auto/decltype)
开发语言·c++·算法
2201_753877797 分钟前
高性能计算中的C++优化
开发语言·c++·算法
无限进步_7 分钟前
深入解析C++容器适配器:stack、queue与deque的实现与应用
linux·开发语言·c++·windows·git·github·visual studio
2501_945425157 分钟前
分布式系统容错设计
开发语言·c++·算法
阿成学长_Cain14 分钟前
Linux 命令:ldconfig —— 动态链接库管理命令
java·开发语言·spring