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
相关推荐
情绪总是阴雨天~14 小时前
智能语音分析Agent项目
python·自动化·fastapi·langgraph
Xin_ye1008614 小时前
C# 零基础到精通教程 - 第十八章:部署与发布——让应用上线
开发语言·c#
思麟呀15 小时前
C++11并发编程:call_once一次性执行+atomic原子类型+CAS无锁编程+自旋锁
linux·开发语言·jvm·c++·windows
Dxy123931021615 小时前
Django 数据库 ENGINE 完全指南:选错了,性能差 10 倍
python·django
码不停蹄的玄黓15 小时前
Java 生产者-消费者模型详解
java·开发语言·python
爱讲故事的15 小时前
操作系统第一讲复习:为什么学习操作系统,以及操作系统到底在做什么?
linux·开发语言·windows·学习·ubuntu·c#
笨蛋不要掉眼泪15 小时前
Java并发编程:Executors框架类深度解析
java·开发语言·并发
凯瑟琳.奥古斯特16 小时前
力扣1235:加权区间调度最优解
java·python·算法·leetcode·职场和发展
_童年的回忆_16 小时前
【php】在linux下PHP安装amqp扩展
linux·开发语言·php
郑洁文16 小时前
基于Python的网络入侵检测系统
网络·python·php