描述
Twitter正在测试一种名为Pigeon的新工作处理服务。
Pigeon处理任何任务的时间是任务实际持续时间的两倍,并且每个任务都有一个权重。 此外,Pigeon在一个小时内只能服务一个有限的持续时间(最大运行时间)。
给定Pigon服务的最大运行时间,任务的实际运行时间和权重,确定Pigon服务在一小时内可以实现的最大总权重。
输入包括以下参数:
每个任务只能被执行一次。
在线评测地址:领扣题库官网
样例1 [2,4,4,5] [2,2,3,4] 你可以运行0、1、2号任务,将花费2 * (2 + 2 + 3) = 14 分钟并获得 2 + 4 + 4 = 10 权重。
样例2 [3,2,2] [3,2,2] 你可以运行1、2号任务,将花费2 * (2 + 2) = 8 分钟并获得 2 + 2 = 4 权重。
考虑01背包进行求解,将p除2是总容量,每个人物的时间是他需要的容量,价值为权重
代码
public class Solution { * @param n: the number of tasks * @param weights: the weight for every task * @param tasks: the actual duration of every task * @param p: maximum runtime for Pigeon in an hour * @return: the maximum total weight that the Pigeon service can achieve in an hour public int maxWeight(int n, int[] weights, int[] tasks, int p) { // write your code here int[][] dp = new int[n + 1][p / 2 + 1]; for (int i = 1; i i++) { for (int j = 1; j = p / 2; j++) { if (j tasks[i - 1]) { dp[i][j] = dp[i - 1][j]; } else { dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - tasks[i - 1]] + weights[i - 1]); return dp[n][p / 2]; }
更多题解参考:九章官网solution
前言 语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无...
体验篇 本文介绍的是unity中接入游戏多媒体引擎. 首先,什么是游戏多媒体引擎呢? ...
本文转载自微信公众号「DS数据科学之美」,作者YYloveYQ 。转载本文请联系DS数据...
2021年3月,物联网安全服务示范系统边缘版(阿里云IoT安全管理一体机)率先通过...
在面对众多的大数据就业岗位,我们应该如何去选择职业发展方向,以及该如何去学...
作者 | 永度 来源 | 阿里技术公众号 工作中经常遇到这样的场景,老板交给了你一...
《阿里云存储白皮书》作为云存储行业首个全景式文档,在基础设施云化、核心技术...
数据科学已经从任意数字发展成为一种有效的管理数据以获取意义的方法。 这项技术...
究竟哪一种循环更快? 答案其实是:for(倒序) 最让我感到惊讶的事情是,当我在本...
如我们所知,JavaScript是当今流行语言中对函数式编程支持最好的编程语言。而函...