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

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

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

具体步骤如下:

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

    PUT YOUR FINAL ANSWER IN THE BOX BELOW:

    答案:\boxed{3}

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

    你可能感兴趣的文章
    ubuntu安装gem和fastlane
    查看>>
    onFailure unexpected end of stream
    查看>>
    android 集成weex
    查看>>
    【echarts】中国地图china.js 在线引用地址
    查看>>
    Flex 布局的自适应子项内容过长导致其被撑大问题
    查看>>
    PL/SQL 动态Sql拼接where条件
    查看>>
    Lua-table 一种更少访问的安全取值方式
    查看>>
    虚函数
    查看>>
    Error:Cannot read packageName from AndroidManifest.xml
    查看>>
    RTL设计- 多时钟域按顺序复位释放
    查看>>
    斐波那契数列两种算法的时间复杂度
    查看>>
    int main(int argc,char* argv[])详解
    查看>>
    【Android踩过的坑】7.Android Studio 点击启动项目时进入调试模式
    查看>>
    【Android小技巧】1.快速查看SDK对应的API Level
    查看>>
    【自学Flutter】4.1 Material Design字体图标的使用(icon)
    查看>>
    C++清空队列(queue)方法
    查看>>
    【换行符】什么时候用cin.get()吃掉输入流中的换行符
    查看>>
    【二叉树】已知后序与中序求先序
    查看>>
    数组范围的动态扩容
    查看>>
    解决Nginx 404 not found问题
    查看>>