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 小时前
JavaScript在数据处理的应用
开发语言·前端·javascript·经验分享·笔记
嵌入式×边缘AI:打怪升级日志14 小时前
转换模块(十二):实现 RGB 转 RGB + 项目整合与上机实验
开发语言·ios·swift
研究点啥好呢14 小时前
凯捷 自动化测试(Java+Selenium)面试题精选:10道高频考题+答案解析
java·开发语言·python·selenium·测试工具·求职招聘
ghie909014 小时前
基于遗传算法的配电网重构
开发语言·重构
SilentSamsara14 小时前
生成器进阶:`yield from`、协程历史与双向通信
开发语言·python·青少年编程·pycharm
kyle~14 小时前
ROS2---消息过滤
开发语言·c++·机器人·ros2
xieliyu.14 小时前
Java手搓二叉树:基础遍历与核心操作全解析
java·开发语言·数据结构·学习
张二娃同学15 小时前
专栏第01篇_深度学习导论
人工智能·python·深度学习·cnn
雪度娃娃15 小时前
C++异步日志系统
开发语言·c++
xyq202415 小时前
SVN 提交操作详解
开发语言