LeetCode 207. 课程表(广度优先遍历)
题目描述
现在你总共有 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. 课程表(广度优先遍历)相关推荐
- LeetCode—207. 课程表
207. 课程表 题目描述:你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 . 在选修某些课程之前需要一些先修课程. 先修课程按数组 prerequisi ...
- LeetCode 207. 课程表(拓扑排序)
1. 题目 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 . 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个 ...
- leetcode —— 207. 课程表
你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 . 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他 ...
- 用java实现课程表_Java实现 LeetCode 207 课程表
207. 课程表 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] ...
- Leetcode 207.课程表
课程表 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总 ...
- Leetcode 207. 课程表 解题思路及C++实现
解题思路: 这是一个判断是否是有向无环图的题,也是拓扑排序题,网上的解决方案大多是从图的角度来解释的,比较复杂,下面先不管图论的内容,直接就深度优先搜索的方法来思考. 首先是建立一个graph,有多少 ...
- leetcode 207课程表
class Solution { public:bool canFinish(int numCourses, vector<vector<int>>& prerequi ...
- 2022-3-22 Leetcode 207.课程表
这道题的本质上是检验是否有一个拓扑排序. 从一个节点开始,把它身边所有的节点都走一遍,看是否会出现环,如果会出现环,说明没有出现拓扑排序. class Solution {private:vector ...
- LeetCode 210. 课程表 II(拓扑排序)
1. 题目 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课 ...
最新文章
- Python 读取文本时的 read/readline/readlines
- 什么是CUDA编程 统一计算架构
- 从程序详解拒绝服务***
- 关于谷歌云,你应该知道的一切! | 技术头条
- 设置防火墙规则,防止因为TCP第三次握手,系统自动返回包
- 【Java】京东面试:说说MySQL的架构体系
- python ax.imshow_python – Matplotlib imshow / matshow在情节上显...
- Ubuntu14.04中踩过的坑
- 未来五年的全球绿色数据中心市场的增长趋势和预测
- mysql插入数据显示:Incorrect datetime value: '0000-00-00 00:00:00'
- 01--DNS服务器2
- Android开源项目及库汇总
- 计算机复试面试基础知识(八股文)(数据库、数据结构、操作系统、计网、机组等)
- Sybase迁移Oracle字符集问题,Sybase数据库迁移数据到Oracle(未改进)
- 【Matlab语音识别】声纹识别【含GUI源码 537期】
- 怎么在Word上编辑数学公式?教你一招
- Java OpenCV 裁剪图片
- 【java1234】java学习路线图2018
- 解读:学习网络安全自学好还是报培训班好
- 训练日记2019.11.11 莫队求区间众数