HIT软件构造2020春Lab4-3

这部分是对4.6改写代码的总结

1.EventManager

程序用于检测最大重合区间。使用方法为:对每个小时作为一个节点,当有事件开始时,则对该结点位置+1表示这时新增了一个事件,对事件结束时间的节点,对该结点位置-1表示减少了一个事件。则最后通过检查每个节点处数字大小,最大的即是同时运行的事件最多的时候。
首先进行输入判断,将输入限制在合法范围内。
然后将时间节点map中键值对重写,以满足如上要求即可。
本代码的思想如下图所示
在这里插入图片描述

2.LowestPrice

计算最低价格,即遍历每一种组合方式,对所有可能的情况进行计算,最小的那个就是要的结果。
先进行输入判断,将输入限制在合法范围内。
然后将递归语句重写即可
本节代码的思想如下图
在这里插入图片描述

3.FlightClient/Flight/Plane

本任务与我前面代码中flights判断是否时间资源有重合的方法类似,即遍历存在资源的航班,对时间是否重合进行判断即可。
先进行输入判断,将输入限制在合法范围内。
但是,实验代码给出的while循环为永真,可能出现死循环,因此,我添加了界限,如果循环10000次仍无法找到有效解决办法,则说明无法分配,即失败。
对于时间caendar的判断,源代码函数不正确,使用before和after函数改正
源代码中用==比较字符串,用String.equals代替
源代码中sort函数有问题,用Comparator.Comparing修正
本节代码思想与之前编写flightentry时对资源的判断思想相似,在此便不再放出。

如有错误,敬请指正!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值