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
相关推荐
罗超驿12 分钟前
13.JavaScript 新手入门指南:语法、变量、流程控制全解析
开发语言·javascript
yingjie11017 分钟前
Scanpy vs Seurat 深度对比:Python 与 R 的单细胞分析框架谁更强?
开发语言·python·r语言·生物信息学·单细胞转录组·seurat·scanpy
程序大视界36 分钟前
【C++ 从基础到项目实战】C++(六):拷贝控制——浅拷贝与深拷贝,兼谈智能指针
开发语言·c++·cpp
luck_bor38 分钟前
IO流知识点笔记
java·开发语言·笔记
包子BI大数据41 分钟前
3.openclaw小龙虾简单版安装教程
人工智能·python·ai
程序大视界43 分钟前
【Python系列课程】Pandas(四):数据统计与排序——describe、sort_values、sample
开发语言·python·pandas
KWTXX1 小时前
使用matlab官网的skills调用claude-待完成
开发语言·matlab
Cthy_hy1 小时前
Python算法竞赛:排列组合核心用法
开发语言·python·算法
大圣编程1 小时前
面向对象深度理解
java·开发语言·算法