博客
关于我
Course Schedule II
阅读量:557 次
发布时间:2019-03-10

本文共 446 字,大约阅读时间需要 1 分钟。

为了最大化所能选取的课程数量,应该采用一种改进的贪心算法,其中不仅根据截止时间排序,还结合课程的持续时间进行选择。这种方法中的每一步都尽量满足当前课程的截止条件,以为后续课程的选择留下更多的时间头寸。这意味着,优先选择课程的截止时间较早且持续时间较短的选项,有助于不浪费时间给后续课程安排。

具体步骤如下:

  • 手动排序:将所有课程按截止时间从早到晚排序。
  • 按截止时间排序:确保每次处理的第一个课程是所有剩余课程中截止时间最早的。
  • 计算累计持续时间:累加当前课程持续时间,及时检查是否已经超过该课程的截止时间。
  • 课程选择保留:可以通过堆结构来维护当前无法按时完成的课程,以后续可能的选择。
  • 调整排序依据:在某些情况下,持续时间较长的课程可能更优,因为它们可能在修改排序标准后更灵活地安排。
  • 通过这种改进的贪心方法,可以有效地解决问题,避免像之前测试样例中提到的情况,导致无法完成更多的课程。

    PUT YOUR FINAL ANSWER IN THE BOX BELOW:

    答案:\boxed{3}

    转载地址:http://akwvz.baihongyu.com/

    你可能感兴趣的文章
    线程生命周期
    查看>>
    JVM内存模型
    查看>>
    反射机制
    查看>>
    反射Field、Method、Constructor
    查看>>
    可变长度参数
    查看>>
    JVM生命周期
    查看>>
    类加载器子系统
    查看>>
    双亲委派机制
    查看>>
    本地方法栈
    查看>>
    堆空间常用参数总结
    查看>>
    逃逸分析-堆分配对象
    查看>>
    方法区“经典”内存结构
    查看>>