我有n个任务,每个任务有几个可能的开始时间和1个持续时间。如果可能的话,我想找到至少一个n个任务的时间表。我正在尝试构建一个移动应用程序,只是为了学习android,所以算法效率并不重要。我希望它很容易理解。这是一个例子:
该算法将返回: 步行狗(早上8点),然后练习java(上午8:30),然后练习吉他(上午11:30),然后参加烹饪班(下午12:30),然后小睡(下午1:20),然后和朋友一起看电影(2 :50微米)
谢谢
答案 0 :(得分:0)
蛮力最简单。对于您列出的示例,有32种可能的安排:2x1x2x2x4x1。只需遍历所有这些。您需要一种数据结构,允许您表示给定的特定计划选择,并检查计划中约会之间的时间重叠。 “约会”列表(但是你想表示那个;数组,字典,等等)会做到这一点。按照约会开始的时间顺序对列表进行排序,然后检查每个列表以查看它是否与下一个碰撞。 [编辑细节,清晰度]