受标签影响的最大值

2023-11-10

题目描述

我们有一个 n 项的集合。给出两个整数数组 values 和 labels ,第 i 个元素的值和标签分别是 values[i] 和 labels[i]。还会给出两个整数 numWanted 和 useLimit 。

从 n 个元素中选择一个子集 s :

子集 s 的大小 小于或等于 numWanted 。
s 中 最多 有相同标签的 useLimit 项。
一个子集的 分数 是该子集的值之和。

返回子集 s 的最大 分数 。

示例 1:

输入:values = [5,4,3,2,1], labels = [1,1,2,2,3], numWanted = 3, useLimit = 1
输出:9
解释:选出的子集是第一项,第三项和第五项。
示例 2:

输入:values = [5,4,3,2,1], labels = [1,3,3,3,2], numWanted = 3, useLimit = 2
输出:12
解释:选出的子集是第一项,第二项和第三项。
示例 3:

输入:values = [9,8,8,7,6], labels = [0,0,0,1,1], numWanted = 3, useLimit = 1
输出:16
解释:选出的子集是第一项和第四项。

提示:

n == values.length == labels.length
1 <= n <= 2 * 104
0 <= values[i], labels[i] <= 2 * 104
1 <= numWanted, useLimit <= n

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/largest-values-from-labels
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

分析

对于useLimit,我们可以用hashmap将标签相同的元素存入一个list集合中,然后对集合进行排序,选取前useLimit个数加入最终进行选取的list中。
然后将最终的list进行排序选取前numWanted个数求和返回即可。

代码

class Solution {
    public int largestValsFromLabels(int[] values, int[] labels, int numWanted, int useLimit) {
        HashMap<Integer,List<Integer>> map=new HashMap<>();
        int n=values.length;
        for(int i=0;i<n;i++){
            if(map.containsKey(labels[i])==false){
                List<Integer> list=new ArrayList<>();
                list.add(values[i]);
                map.put(labels[i],list);
            }else{
                map.get(labels[i]).add(values[i]);
            }
        }
        List<Integer> li=new ArrayList<>();
        for(int k:map.keySet()){
            List<Integer> list1=map.get(k);
            Collections.sort(list1, new Comparator<Integer>() {
                @Override
                public int compare(Integer o1, Integer o2) {
                    return o2-o1;
                }
            });
            for(int j=0;j<list1.size() && j<useLimit;j++){
                li.add(list1.get(j));
            }
        }
        Collections.sort(li, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        int res=0;
        for(int u=0;u<numWanted && u<li.size();u++){
            res+=li.get(u);
        }
        return res;
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

受标签影响的最大值 的相关文章

  • SWIG 类型映射 uint8_t* 从 C/C++ 到 java.nio.ByteBuffer

    我正在尝试将输入和输出缓冲区从 C 传递给 java 类 出于效率原因 我需要使用 ByteBuffer 这两个缓冲区都是在 C 部分中分配的 我需要将它们传递给一个 java 函数 该函数将使用输入缓冲区进行一些计算并将结果写入输出缓冲区
  • 如何向 OkHttp 请求拦截器添加标头?

    我将这个拦截器添加到我的 OkHttp 客户端 public class RequestTokenInterceptor implements Interceptor Override public Response intercept C
  • Spring MVC 中的 CSRF(跨站请求伪造)保护

    我对春季的 CSRF 跨站请求伪造 保护有点困惑 不 我有我的 jsp 我的控制器和一个 Web 服务 我想要做的是在 Web 服务级别验证令牌 如果令牌匹配 则运行 Web 服务 在我的例子中执行数据库插入 JSP file
  • Hibernate、MySQL 视图和 hibernate.hbm2ddl.auto = 验证

    我可以在 Hibernate 中使用 MySQL 视图 将它们视为表 即 该实体与为表创建的实体没有什么不同 但是 当 Hibernate 设置为验证模型时 我的应用程序将不会部署 因为它找不到视图 因为它假设它是一个表 是否可以在启用部署
  • Knuth-Morris-Pratt 算法

    解决方案是Knuth Morris Pratt 算法 https en wikipedia org wiki Knuth E2 80 93Morris E2 80 93Pratt algorithm 干草堆 AAAAAAAAA 针 AAA
  • JavaFX 动画使用循环?

    我正在尝试制作一款类似太空侵略者的游戏 我画了一个正方形 我想通过使用循环逐步向下移动它thread sleep 然而 正方形立即被绘制出来 我知道有可以使用的动画路径 但我想保持低水平并仅使用坐标系 有没有办法使用这样的循环来制作时间轴动
  • 酷还是傻? Catch(异常[NamingException, CreateException] e)

    我正在编写一些代码 我注意到异常处理中的一种模式让我思考 try do stuff throws JMS Create and NamingException catch NamingException e log1 e rollback
  • 在 JSF 自定义验证器中区分 ajax 请求和完整请求

    我的验证器需要知道它是完整请求还是 ajax 请求 在我当前的解决方案中 我检查 http 请求标头X Requested With元素 public void validate FacesContext context UICompone
  • Java Timer 类:如果其中一个任务抛出异常,则计时器任务停止执行

    new Timer scheduleAtFixedRate new TimerTask Override public void run System out println run throw new SomeRandomExceptio
  • 未从线程接收位置数据

    我尝试使用计时器经常发送包含用户位置的短信 最初 我遇到了空指针异常 这是由于我犯了一个简单的错误 一旦解决了这个问题 一切似乎都运行良好 但是 它永远不会获取我的位置 因此 不断发送的文本显示 无法接收位置 我想问的是为什么它无法获取我的
  • 使用泛型进行选择排序

    我对整数进行了选择排序并且它正在工作 当我尝试修改程序以使用泛型时 编译器会抱怨 我不知道如何修复它 如果有人能提出一些建议和建设性意见 我将不胜感激 这是代码 public class SelelctionSort public stat
  • 错误:列“this_.phitorsionangle”必须出现在 GROUP BY 子句中或在聚合函数中使用

    我在执行 sql 查询时遇到了一些问题 我正在使用 Hibernate Criteria 来构建查询 我通过按一定间隔 binSize 舍入值然后对它们进行分组来从数据库创建一些容器 当我直接在 SQL 中使用查询尝试时 效果非常好 SEL
  • 从字符串中提取文本 Java

    使用此字符串 ADACADABRA 如何从java中的字符串 ADACADABRA 中提取 CADA 以及如何提取 和 之间的id从下面的链接 http www youtube nocookie com embed zaaU9lJ34c5
  • 解析 SWIG 接口文件的结构属性

    这是我不久前问过的问题的延续 为通过参数返回的函数创建类型映射 https stackoverflow com questions 12793973 create a typemap for a function that returns
  • 为什么我的 Java 路径中添加了“L”?

    我在我的类路径中加载了一个 jar 在 iReport 中 如果重要的话 我确信它具有所需的方法 但是当我尝试测试连接 从而调用该 jar 时 我得到一个 java lang NoSuchMethodError 说它正在引用班上 Lorg
  • JSF - 实施受限页面过滤器

    我正在关注 BalusC 的回答JSF 2 0 如何获取在浏览器地址栏中输入的 URL https stackoverflow com questions 4105263 jsf 2 0 how to get the url that is
  • 如何使用 Kafka 发送大消息(超过 15MB)?

    我发送字符串消息到Kafka V 0 8使用 Java Producer API 如果消息大小约为 15 MB 我会得到MessageSizeTooLargeException 我尝试过设置message max bytes到 40 MB
  • Java分数计算器

    我对 Java 编程还很陌生 我的 AP 计算机编程课程有作业要完成 所以请耐心等待 我必须弄清楚如何将两个分数相乘 我想知道是否有任何方法可以在方法内部声明变量并在该方法外部使用它 我在介绍方法中的 while 循环 谢谢您 希望这不会令
  • Java:如何检测(并更改?)System.console 的编码?

    我有一个在控制台上运行的程序 其变音符号和其他特殊字符在 Mac 上以 的形式输出 这是一个简单的测试程序 public static void main String args System out println h h System
  • selenium 没有找到合适的方法,直到(ExpectedCondition)

    这是有线的问题 我导入的项目运行 100 几个月前 今天我已将其与依赖项一起导入 但存在问题WebDriverWait 这是我的代码 WebDriverWait driverWait new WebDriverWait driver 100

随机推荐

  • Phaser.js教程

    从零到一 用Phaser js写意地开发小游戏 https segmentfault com a 1190000009212221
  • python列表排序方法-python list排序的两种方法及实例讲解

    对List进行排序 Python提供了两个方法 方法1 用List的内建函数list sort进行排序 list sort func None key None reverse False Python实例 1 2 3 4 5 6 gt g
  • 移动网络运营商显示无服务器,无线路由器忽然拨不上号,显示网络运营商远端无响应怎么处理...

    如果是有猫的环境 1 就从猫的哪个接口连接网线到路由WAN口 1 如果不需要拨号就可以上网 看下电脑平时不接路由器是连在猫的哪个接口上网 4 10M选择10M全双工 点击系统工具 重启路由器 超易安装界面的路由器1 祝您工作顺利 如果还是网
  • 人工智能革命:超级智能之路(上)

    这篇文章翻译于Tim Urban大神的 The AI Revolution 的系列文章 下面让我们一起领略一下Tim Urban大神理解的人工智能革命是怎样的吧 文章目录 遥远的未来 即将到来 超级智能之路 人工智能 我们目前在哪里 一个在
  • Echarts重绘报错 The image argument is a canvas element with a width or height of 0

    Echarts重绘报错 原因在于绘制时 未正确获取到画布的宽高 在容器内写入行内样式 即可解决
  • Unity 3D 人形角色动画(Avatar)||Unity 3D 导航系统||Unity 3D 障碍物

    Unity 3D 人形角色动画 Avatar Mecanim 动画系统适合人形角色动画的制作 人形骨架是在游戏中普遍采用的一种骨架结构 由于人形骨架在骨骼结构上的相似性 用户可以将动画效果从一个人形骨架映射到另一个人形骨架 从而实现动画重定
  • 基础入门-数据包拓展

    Request请求数据包数据格式 1 请求行 请求类型 请求资源路径 协议的版本和类型 2 请求头 一些键值对 浏览器与 web 服务器之间都可以发送 特定的某种含义 3 空行 请求头与请求体之间用一个空行隔开 4 请求体 要发送的数据 一
  • 22-Go操作mysql

    安装mysql docker快速启动一个MySQL Server容器 docker run name mysql8019 p 3306 13306 d e MYSQL ROOT PASSWORD root1234 mysql 8 0 19
  • 编译原理递归下降分析器(语法分析器)(C/C++)

    include
  • dumpbin.exe简要使用说明

    该工具可以查看 exe的依赖文件 查看dll的导入及导出符号等 在命令行中输入dumpbin并回车 可显示所有选项 主要选项有 ALL 此选项显示除代码反汇编外的所有可用信息 可以与 RAWDATA NONE一起省略文件的原始二进制详细资料
  • Unity预制体Prefab及其实例化(Instantiate)

    简介 在Unity3D工程建设中 Prefabs 预设 是很常用的一种资源类型 是一种可以被重复使用的游戏对象 可以被置入多个场景中 也可以在一个场景中多次置入 在场景中增加一个Prefab 就是实例化了一个Prefab 所有的Prefab
  • Tensorflow 激活函数 activation function

    激活函数 activation function 线性模型的局限性 只通过线性变换 任意层的全连接神经网络和单层神经网络的表达能力并没有任何区别 线性模型能解决的问题是有限的 激活函数的目的是去线性化 如果将每一个神经元的输出通过一个非线性
  • nrm指令报错解决

    今天打算安装切换公司内部的npm源 出现报错 以下为全过程与解决方案 先全局安装nrm npm install nrm g 添加公司的registry nrm add 出现报错 Error ERR REQUIRE ESM require o
  • 多个字段同时去重

    首先创建一个表结构 其中数据如下 根据上面的name age sex三个字段进行去重 去重思想 说到去重 大家想到的肯定是distinct这个关键字 但这个关键字他只能对一个字段进行去重 那么如何同时根据这三个字段去重呢 办法就是把这三个字
  • 用户登录的详细流程(一)

    用户登录的详细流程 1 流程概述 1 首先在进行用户登录的时候 要进行一些必要的准备工作 比如说要对用户登录表进行设计 一般是userId userName phone password salt remark等等 通常数据库存储的密码是m
  • vue3中ts全局声明再.vue文件中显示no-undef

    显示错误xxx is not defined eslintno undef 解决方法 参考 Why Eslint don t see global TypeScript types in vue files no undef 在 eslin
  • 目前流行前端几大UI框架排行榜

    在前端项目开发过程中 总是会引入一些UI框架 已为方便自己的使用 很多大公司都有自己的一套UI框架 下面就是最近经常使用并且很流行的UI框架 一 Mint UI 流行指数 Mint UI是 饿了么团队开发基于vue js的移动端UI框架 它
  • python实现:提取文件夹中子文件夹的图片

    提取文件夹中子文件里的图片的方法 主要运用到的函数 import os import shutil 首先需要获取内部文件夹的文件名 os chdir D 作业 python 数据集 if masked AFDB masked face da
  • vue面试题汇总

    HTML篇 CSS篇 JS篇 TypeScript篇 React篇 微信小程序篇 前端面试题汇总大全 含答案超详细 HTML JS CSS汇总篇 持续更新 前端面试题汇总大全二 含答案超详细 Vue TypeScript React 微信小
  • 受标签影响的最大值

    题目描述 我们有一个 n 项的集合 给出两个整数数组 values 和 labels 第 i 个元素的值和标签分别是 values i 和 labels i 还会给出两个整数 numWanted 和 useLimit 从 n 个元素中选择一