🗒️2050. 并行课程 III
2025-1-9
| 2025-1-9
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Jan 9, 2025 02:31 AM
给你一个整数 n ,表示有 n 节课,课程编号从 1 到 n 。同时给你一个二维整数数组 relations ,其中 relations[j] = [prevCoursej, nextCoursej] ,表示课程 prevCoursej 必须在课程 nextCoursej 之前 完成(先修课的关系)。同时给你一个下标从 0 开始的整数数组 time ,其中 time[i] 表示完成第 (i+1) 门课程需要花费的 月份 数。
请你根据以下规则算出完成所有课程所需要的 最少 月份数:
  • 如果一门课的所有先修课都已经完成,你可以在 任意 时间开始这门课程。
  • 你可以 同时 上 任意门课程 。
请你返回完成所有课程所需要的 最少 月份数。
注意:测试数据保证一定可以完成所有课程(也就是先修课的关系构成一个有向无环图)。

拓扑排序

思路:这道题的本质是拓扑排序。需要注意的是,我们要使用额外的数组来存储前后依赖关系的时间累加,这样才能得到正确的答案。
也在采用另一种理解方式。

📎 参考

  • 【题单】图论算法
  • 2359. 找到离给定两个节点最近的节点802. 找到最终的安全状态(拓扑排序)
    Loading...