通过java如何实现下面算法?

某日,一个项目经理接受到客户需求,经过讨论将其分解为5个任务,由于任务依赖关系和人员调度问题,每个任务的开始结束时间以及所需人力可能存在差异。具体如下:
任务A:开始时间为:8月1日,结束时间为:8月5日,所需人力:5人日
任务B:开始时间为:8月2日,结束时间为:8月4日,所需人力:2人日
任务C:开始时间为:8月4日,结束时间为:8月6日,所需人力:2人日
任务D:开始时间为:8月5日,结束时间为:8月8日,所需人力:3人日
任务E:开始时间为:8月9日,结束时间为:8月10日,所需人力:1人日
该项目经理现在给一个技术骨干安排任务,要求其在8月1日到8月10日间,完成尽可能多的任务,编写一个Java程序根据任务的开始结束时间,所需人力,求出指定时长内能够完成的最大任务数。
要求和限制:
1. 任务之间不能重叠
2. 一个任务的结束时间不能和另一个任务的开始时间相等,比如任务B的结束时间和任务C的开始时间相等
考核点:算法;语言:Java;开发环境:jdk1.7 IDE自选

谁能帮我答下 啊


郎朗坤
浏览 838回答 1
1回答

繁花不似锦

顺序表的逆置: 获取顺序表的头和尾两个index :first、last,定义for循环、两个临时的index,a和b a = first + i; b = last - i; 用变量分别获取a和b两个节点的值,然后交换 直到全部交换完成或只剩一个元素时退出循环。 删除值相同的多余元素: 1、定义一个类,类中定义一个顺序表变量,定义添加方法,如果顺序表中已有该值则不添加
打开App,查看更多内容
随时随地看视频慕课网APP