Leetcode--826. 安排工作以达到最大收益

有一些工作:difficulty[i] 表示第i个工作的难度,profit[i]表示第i个工作的收益。

现在我们有一些工人。worker[i]是第i个工人的能力,即该工人只能完成难度小于等于worker[i]的工作。

每一个工人都最多只能安排一个工作,但是一个工作可以完成多次。

举个例子,如果3个工人都尝试完成一份报酬为1的同样工作,那么总收益为 $3。如果一个工人不能完成任何工作,他的收益为 $0 。

我们能得到的最大收益是多少?

示例:

输入: difficulty = [2,4,6,8,10], profit = [10,20,30,40,50], worker = [4,5,6,7]
输出: 100 
解释: 工人被分配的工作难度是 [4,4,6,6] ,分别获得 [20,20,30,30] 的收益。
提示:

1 <= difficulty.length = profit.length <= 10000
1 <= worker.length <= 10000
difficulty[i], profit[i], worker[i]  的范围是 [1, 10^5]

思路:

先将工人能力排序,再将工作按照酬劳排序

如果能力高的工人都做不了的工作,能力低的自然不用做了

class Solution {
    public int maxProfitAssignment(int[] difficulty, int[] profit, int[] worker) {
        int count=0;
        int[][] difficultAndProfit=new int[difficulty.length][2];
        for(int i=0;i<difficultAndProfit.length;i++){
            difficultAndProfit[i][0]=difficulty[i];
            difficultAndProfit[i][1]=profit[i];
        }
        //按难度排序二维数组
        Arrays.sort(difficultAndProfit, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[0]-o2[0];
            }
        });
        //排序worker表
        Arrays.sort(worker);
        int workIndex=0;
        int count1=0;
        for(int i=0;i<worker.length;i++){
            for(int j=workIndex;j<difficultAndProfit.length;j++){
                if(worker[i]>=difficultAndProfit[j][0]){
                    if(difficultAndProfit[j][1]>count1){
                        count1=difficultAndProfit[j][1];
                    }
                    workIndex++;
                }
                else {

                    break;
                }
            }
            count+=count1;
        }
        return count;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前沿技术】2021九大技术趋势:规模化机器学习、「零信任」架构

来源&#xff1a;智能研究院《德勤2021年技术趋势》报告研究了疫情一年来对企业战略、运营和技术带来的连锁反应&#xff0c;论述了其重大发现&#xff1a;全球企业正在加速数字化战略转型&#xff0c;从而构建「韧性」、开创全新的经营模式。报告讨论了接下来18至24个月及以后…

Java项目打包成exe的详细教程

Java项目打包成exe的详细教程 把Java项目打包成exe共分为以下两步&#xff1a; 1、 利用Eclipse先把Java项目先打成jar包 2、 利用exe4j工具把jar包转成exe 这里以Java项目&#xff08;ExeDemo&#xff09;为例进行讲解 随便在一个位置新建一个文件夹&#xff0c;文件夹的名称也…

linux java amr转mp3_本工具用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...

音频转码工具本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放。支持 Linux/Windows/Mac 平台因为是基于 JAVE 项目的修改&#xff0c;而 JAVE 是依赖 ffmpeg 所以可以适用于所有 ffmpeg 所支持的文件格式的转换。具体可以查看 JAVE 官方…

MySQL小问题:cant connect to MYSQL server on localhost

连接数据库发现出现了错误&#xff1a;2003-cant connext to MYSQL server on localhost 解决方法&#xff1a; 1.winr 打开cmd控制台&#xff0c;首先net startenter 查看有没有mysql服务启动&#xff0c;一般这不会出现问题 此时你输入mysql -u root -p 是会出现错误的 2…

【c# 学习笔记】所有类的父类:System.object

在c#中&#xff0c;所有的类都派生自System.Object类。如果定义的类&#xff0c;没有直达任何基类&#xff0c;编译器就会自动把Object类当作它的基类。和其他类 一样&#xff0c;System.Object类也定义了一组共有的成员&#xff0c;其定义如下&#xff1a; public class Objec…

数学史上的哲学绝唱——无穷观与数学基础的争论

来源&#xff1a;《广西民族大学学报》2014年11月作者&#xff1a;郭龙先&#xff0c;黄永两千多年来&#xff0c;数学家们一直试图从少数公理出发&#xff0c;根据明确给出的演绎规则推导出其他数学定理&#xff0c;从而把整个数学构造成为一个严密的演绎大厦&#xff0c;然后…

java dct变换_Discrete Cosine Transform [DCT] (离散余弦变换)

Discrete Cosine Transform [DCT] (离散余弦变换)描述&#xff1a;Binarizer是一个Transformer。离散余弦变换是与傅里叶变换相关的一种变换&#xff0c;它类似于离散傅立叶变换但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换&#xff0c;这个离散傅…

Leetcode--141. 环形链表

给定一个链表&#xff0c;判断链表中是否有环。 为了表示给定链表中的环&#xff0c;我们使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;索引从 0 开始&#xff09;。 如果 pos 是 -1&#xff0c;则在该链表中没有环。 示例 1&#xff1a; 输入&#xff1a;head …

MapReduce 踩坑 - hadoop No FileSystem for scheme: file/hdfs

一、场景 hadoop-3.0.2 hbase-2.0.0 一个mapreduce任务&#xff0c;在IDEA下本地提交到hadoop集群可以正常运行。 现在需要将IDEA本地项目通过maven打成jar包&#xff0c;从而能够在windows/Linux命令行下&#xff0c;通过Java -jar方式运行。 二、状况 报错可能1&#xff1a;…

解读自动驾驶的2020:从硬件角度看,无人车商业化落地难在哪?

来源 &#xff1a;AI前线作者 &#xff1a;滴滴自动驾驶技术团队策划 &#xff1a;陈思「重点问题」什么是合适的无人驾驶车辆平台&#xff1f;复杂场景下的“无人驾驶”&#xff0c;传感器硬件系统还有哪些挑战&#xff1f;告别 demo 硬件系统后&#xff0c;下一个前装量产的必…

Leetcode--142. 环形链表Ⅱ

给定一个链表&#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 为了表示给定链表中的环&#xff0c;我们使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;索引从 0 开始&#xff09;。 如果 pos 是 -1&#xff0c;则在该链表中没有…

java中字符串函数_JAVA中字符串函数subString的用法小结

string str;str&#xff1d;str.substring(int beginindex);截取掉str从首字母起长度为beginindex的字符串&#xff0c;将剩余字符串赋值给str&#xff1b;str&#xff1d;str.substring(int beginindex&#xff0c;int endindex);截取str中从beginindex开始至endindex结束时的…

select默认下拉箭头改变、option样式清除

谷歌、火狐、ie下 select 的默认下拉箭头图标差别还是比较大&#xff0c;一般我们都会清除默认样式&#xff0c;重新设计箭头图标&#xff1b; /* --ie清除--*/select::-ms-expand{ display: none; }/* --火狐、谷歌清除--*/select{appearance:none; -moz-appearance:none; -…

Leetcode--15. 三数之和

给定一个包含 n 个整数的数组 nums&#xff0c;判断 nums 中是否存在三个元素 a&#xff0c;b&#xff0c;c &#xff0c;使得 a b c 0 &#xff1f;找出所有满足条件且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 例如, 给定数组 nums [-1, 0, 1,…

他们提出了一个大胆的猜想:GWT(深度学习)→通用人工智能

来源&#xff1a;AI科技评论编译 &#xff1a;陈彩娴近日&#xff0c;有一篇发表在arXiv的论文“Deep Learning and the Global Workspace Theory”提出了一个大胆的猜想&#xff08;或理论&#xff09;。两位作者认为&#xff0c;当下的深度学习已经可以基于一个意识模型&…

python调用jar 性能_亲自有效---python 调用jar

#-*-coding:utf-8-*-import jpypefrom jpype import *import os.pathjarpath os.path.abspath(‘.‘)#这个函数用来获取当前 python 脚本所在的绝对路径aajarpath ‘\JpypeDemo.jar‘print(aa)jvm_path jpype.getDefaultJVMPath() #获取当前系统JDK的路径print(jvm_path)# s…

计算机网络-奈氏准则

假定某信道受奈氏准则限制的最高码元速率为20000码元/秒。如果采用振幅调制&#xff0c;把码元的振幅划分为16个不同等级来传送&#xff0c;那么可以获得多高的数据率&#xff08;b/s&#xff09;?答&#xff1a;CR*Log2&#xff08;16&#xff09;20000b/s*480000b/s (C是速据…

Leetcode--80. 删除排序数组中的重复项Ⅱ

给定一个排序数组&#xff0c;你需要在原地删除重复出现的元素&#xff0c;使得每个元素最多出现两次&#xff0c;返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定 nums [1,1,1,2…

科学史上那些盛极一时的“著名理论”是如何被攻破的?

《雅典学院》名画中的亚里士多德和柏拉图来源 :《自然》百年科学经典制版编辑: Morgan在科学发展的过程中&#xff0c;曾经涌现出不少盛极一时而后被证明是错误的理论。这些理论有的也许在今天看来悖谬荒诞&#xff0c;但是从整个科学发展的过程来看&#xff0c;它们仍然有其作…

Cluster - LB - haproxy

sd 转载于:https://www.cnblogs.com/aftree/p/9219435.html