用的是贪心算法,用两个数组分别存储准备时间与执行时间(prepare和commit) 同时用一个最小堆维护prepare的最小值(堆内存的是索引PriorityQueue<Integer> pq=new PriorityQueue<>((x,y)->prepare[x]-[prepare[y])),每次弹出准备时间最小的任务索引index(运行这个)如果prepare[index]>0,则将prepare[i]全部减去prepare[index],并将返回值time增加这个prepare[index],同样的,运行执行任务时也把prepare[i]全部减去commit[index]。直到堆为空后time加上所有的执行时间commit[i]即为结果
点赞 评论

相关推荐

09-01 21:40
已编辑
同济大学 Java
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务