【100%通过率】2023华为od机试C卷【项目排期/最少交付时间】JS 实现

该博客介绍了如何使用JavaScript解决华为OD机试中的一道问题,即在给定开发人员数量和各需求工作量的情况下,求出使项目能在最短时间内交付的算法。博主通过分析思路,提出采用回溯法结合二分查找来确定最优分配方案,并给出了代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

题目

思路

Code


题目

项目组共有N个开发人员,项目经理接到了M个独立的需求,每个需求的工作量不同,且每个需求只能由一个开发人员独立完成,不能多人合作。假定各个需求直接无任何先后依赖关系,请设计算法帮助项目经理进行工作安排,使整个项目能用最少的时间交付。


输入描述
第一行输入为M个需求的工作量,单位为天,用逗号隔开
例如: X1 X2 X3 ... Xm 。表示共有M个需求,每个需求的工作量分别为X1天,X2天...Xm天其中0<M<30; 0<Xm<200
第二行输入为项目组人员数量N
输出描述

输出最快完成工作的天数


示例1:
输入:

6 2 7 7 9 3 2 1 3 11 4
2
输出:
28
说明:
共有两位员工,其中一位分配需求 6 2 7 7 3 2 1共需要28天完成,另一位分配需求 9 3 11 4共需要27天完成,故完成所有工作至少需要28天。
 

思路

1:这种题型C卷中出现2次了,都是给定一个数组让求满足一定条件的最小数字。

2:直接可以想到二分法,但是此题也有点不一样,因为【每个需求只能由一个开发人员独立完成】。

3:如果我们给定一个时间,我们就需要

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MISAYAONE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值