2023-05-23 LeetCode每日一题(受标签影响的最大值)

news/2024/11/17 10:39:38/

2023-05-23每日一题

一、题目编号

1090. 受标签影响的最大值

二、题目链接

点击跳转到题目位置

三、题目描述

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

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

  • 子集 s 的大小 小于或等于 numWanted 。
  • s 中 最多 有相同标签的 useLimit 项。

一个子集的 分数 是该子集的值之和。

返回子集 s 的最大 分数

四、解题代码

class Solution {
public:
struct Good{int value;int label;Good(int value, int label) : value(value), label(label){};
};int largestValsFromLabels(vector<int>& values, vector<int>& labels, int numWanted, int useLimit) {unordered_map<int, int> hash;int n = values.size();vector<Good> good;for(int i = 0; i < n; ++i){good.push_back(Good(values[i], labels[i]));}  sort(good.begin(), good.end(),[&](Good &a, Good &b){return a.value > b.value;});int num = 0;int res = 0;for(int i = 0; i < n; ++i){if(useLimit == hash[good[i].label]){continue;}num++;hash[good[i].label]++;res += good[i].value;if(num == numWanted){break;}}return res;}
};

五、解题思路

(1) 首先使用结构体将values和labels两个数组中的信息合并到一起,合并到good数组中。

(2) 将good数组按照价值从大到小来进行排序。(使用C++的自定义排序)。

(3) 继续遍历good数组,用哈希表来统计取得相同标签的项,如果取得相同标签的项已经等于限制就不取,直到取到所能取的物品的上限或者遍历完数组为止。

(4) 返回累加的结果即可。


http://www.ppmy.cn/news/89562.html

相关文章

《程序员面试金典(第6版)》面试题 02.08. 环路检测(哈希法,双指针,检测链表是否有环)

题目描述 给定一个链表&#xff0c;如果它是有环链表&#xff0c;实现一个算法返回环路的开头节点。若环不存在&#xff0c;请返回 null。 题目传送门&#xff1a;面试题 02.08. 环路检测 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链…

带拖拽排序的el-table

思路&#xff1a; 使用Sortable.js是一款轻量级的拖放排序列表的js插件 npm install sortablejs --save //在要使用的组件中导入 import Sortable from ‘sortablejs’ 代码展示 <template><div class"app-container"><h3>各房间尺寸</h3>…

Java内部类(成员内部类、静态嵌套类、方法内部类、匿名内部类)

文章目录 一、内部类的共性二、为什么需要内部类三、静态内部类&#xff08;静态嵌套类&#xff09;四、成员内部类五、局部内部类&#xff08;方法内部类&#xff09;六、匿名内部类 Java 类中不仅可以定义变量和方法&#xff0c;还可以定义类&#xff0c;这样定义在类内部的类…

用FPGA实现光端机HDB3编码设计

摘要 介绍了光端机的E1信道HDB3编码的原理和方法,给出了用FPGA实现E1信号HDB3编码的方法。得到了用Xilinx公司的集成软件ISE6.2进行HDB3编码的原理图及仿真结果。结果表明用XC2S100系列FPGA实现HDB3的转换比采用专用集成电路具有结构简单、体积更小、灵活性高等优点。 关键词…

PMP学习重点笔记(项目范围管理)

词条内容范围管理步骤 确保项目做且只做所需的全部工作&#xff0c;以成功完成项目的各个过程。 规划范围管理-收集需求-定义范围&#xff08;粗&#xff09;-创建WBS&#xff08;细&#xff09;-确定范围-&#xff08;控制范围/变更&#xff09; 注&#xff1a; WBS&#xff0…

面试:TCP传输的三次握手四次挥手策略

连接一个TCP连接需要“三次握手” 用TCP协议把数据包送出去后&#xff0c;TCP不会对传送 后的情况置之不理&#xff0c;它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志&#xff1a;SYN和ACK。 发送端首先发送一个带SYN标志的数据包给对方。 接收端收到后&#xff…

js中获取对象属性值(对象.属性和对象[属性]的区别)

一、在JavaScript中可以通过两种方式访问对象属性 (1)可以使用“ . ”来访问对象的属性。 (2)可以使用“ [ ] ”来访问对象的属性。 二、对象.属性和对象[属性]的区别&#xff1a; 1.相同点&#xff1a; &#xff08;1&#xff09;都可以获取对象的属性值&#xff1b; 2.不同…

npm更换成淘宝镜像源及cnpm使用

1.需求由来 由于node安装插件是从国外服务器下载&#xff0c;受网络影响大&#xff0c;速度慢且可能出现异常。所以如果npm的服务器在中国就好了&#xff0c;所以我们乐于分享的淘宝团队&#xff08;阿里巴巴旗下业务阿里云&#xff09;干了这事。来自官网&#xff1a;“这是一…