我有一个项目清单,每个项目都需要两天时间才能完成,并且有一个截止日期。设P[i].id、P[i].duedate、p[i].value分别为项目的id、项目的截止日期、按时完成项目获得的价值(on或截止日期前)
编写一个算法,将数组 A 作为输入,并返回您将执行哪些项目以及何时执行的时间表,以最大化您获得的价值。该算法的输出是一个数组 B,其中 B[i] 是您将在第 i 天工作的项目的 ID,i>= 1。
在特定日期不超过一个项目,除非您在截止日期前完成,否则您不会获得项目的价值,今天是第 0 天,您将从第 1 天开始处理项目(截止日期是一个整数),例如,如果一个项目的截止日期是 5,您可以选择在第 3 天和第 5 天工作)
1-编写算法。2-证明算法是最优的?3-算法的时间复杂度是多少?