题目描述

现在你总共有 n 门课需要选,记为 0 到 n-1。
在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]
给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?

思路

详见链接

代码

from typing import List
from collections import dequeclass Solution:def canFinish(self,numCourses:int,prerequisites:List[List[int]]) ->bool:clen = len(prerequisites)if clen == 0:return Truein_degrees = [0 for _ in range(numCourses)]adj = [set() for _ in range(numCourses)]for second, first in prerequisites:in_degrees[second] += 1adj[first].add(second)queue = deque()for i in range(numCourses):if in_degrees[i] == 0:queue.append(i)counter = 0while queue:top = queue.popleft()counter += 1for successor in adj[top]:in_degrees[successor] -= 1if in_degrees[successor] == 0:queue.append(successor)return counter == numCourses

效果

LeetCode 207. 课程表(广度优先遍历)相关推荐

  1. LeetCode—207. 课程表

    207. 课程表 题目描述:你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 . 在选修某些课程之前需要一些先修课程. 先修课程按数组 prerequisi ...

  2. LeetCode 207. 课程表(拓扑排序)

    1. 题目 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 . 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个 ...

  3. leetcode —— 207. 课程表

    你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 . 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他 ...

  4. 用java实现课程表_Java实现 LeetCode 207 课程表

    207. 课程表 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] ...

  5. Leetcode 207.课程表

    课程表 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总 ...

  6. Leetcode 207. 课程表 解题思路及C++实现

    解题思路: 这是一个判断是否是有向无环图的题,也是拓扑排序题,网上的解决方案大多是从图的角度来解释的,比较复杂,下面先不管图论的内容,直接就深度优先搜索的方法来思考. 首先是建立一个graph,有多少 ...

  7. leetcode 207课程表

    class Solution { public:bool canFinish(int numCourses, vector<vector<int>>& prerequi ...

  8. 2022-3-22 Leetcode 207.课程表

    这道题的本质上是检验是否有一个拓扑排序. 从一个节点开始,把它身边所有的节点都走一遍,看是否会出现环,如果会出现环,说明没有出现拓扑排序. class Solution {private:vector ...

  9. LeetCode 210. 课程表 II(拓扑排序)

    1. 题目 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课 ...

最新文章

  1. Python 读取文本时的 read/readline/readlines
  2. 什么是CUDA编程 统一计算架构
  3. 从程序详解拒绝服务***
  4. 关于谷歌云,你应该知道的一切! | 技术头条
  5. 设置防火墙规则,防止因为TCP第三次握手,系统自动返回包
  6. 【Java】京东面试:说说MySQL的架构体系
  7. python ax.imshow_python – Matplotlib imshow / matshow在情节上显...
  8. Ubuntu14.04中踩过的坑
  9. 未来五年的全球绿色数据中心市场的增长趋势和预测
  10. mysql插入数据显示:Incorrect datetime value: '0000-00-00 00:00:00'
  11. 01--DNS服务器2
  12. Android开源项目及库汇总
  13. 计算机复试面试基础知识(八股文)(数据库、数据结构、操作系统、计网、机组等)
  14. Sybase迁移Oracle字符集问题,Sybase数据库迁移数据到Oracle(未改进)
  15. 【Matlab语音识别】声纹识别【含GUI源码 537期】
  16. 怎么在Word上编辑数学公式?教你一招
  17. Java OpenCV 裁剪图片
  18. 【java1234】java学习路线图2018
  19. 解读:学习网络安全自学好还是报培训班好
  20. 训练日记2019.11.11 莫队求区间众数

热门文章

  1. SAP MM GR/IR Account Maintenance的DEMO
  2. 按值传递和按引用传递的区别_c++按值、地址、引用传递参数
  3. java怎么倒计时_详解java倒计时三种简单实现方式
  4. java笔试面试题---基础部分4
  5. 开发提效小技巧分享(一)
  6. 离散效率写给自己的话 二
  7. 【图】二分图最大权匹配
  8. Java支持的编码格式
  9. ifix与mysql_将 iFIX 与 Proficy Historian 配合使用
  10. golang 内存分析/动态追踪