实现一个EventManager类来管理个人日程:
每一天的任务都有开始时间和结束时间,每一天的任务可能有很多个开始于同一个时间,也可能结束在同一个时间,我们用一个treemap去存储每一个开始时间都有几个任务开始,结束时间也同理,由于treemap自带排序功能,遍历value的时候也一定是按照时间的顺序遍历的。假如我们存进去[1,1,2]和[1,2,3],在遍历的时候,在1这一点上我们得到ans是1,在2这一点还是1,在3这一点就变成0了。开始时间存1,结束时间存-1。
LowestPrice类:
程序的目的是我们输入一些价格,输入一些特价购买方式,还有此次购买需要的商品各是多少,然后我们搜索出最少的价格。其实程序的想法其实是类似于爆搜,我们第一个特价方案可以选或者不选,选也可以选很多个,只需要去当前状态下的价格和选一个特价方案情况下的价格,取最小值,就能得到一次最小。然后对于每一个特价方案我们都做这个操作,那我们就能得到全局的最小了。
FlightClient/Flight/Plane类:
改完了这个感觉有很多地方自相矛盾,可能是我理解的不是很到位。程序主要就是先将flight按照出发时间从小到大排序,然后我们对于每一个flight,随机取出一个plane,我们看剩下的flight里面有没有flight的plane和这个plane冲突,如果有时间上的冲突,我们就放弃这个plane,然后再随机的选plane,如果任何一个plane都不能满足要求,我们就返回false。这里面主要就是在标记所有的plane是否都取过的时候回很麻烦,感觉又违反了随机数的初衷。