力扣hot100:207. 课程表

这是一道拓扑排序问题,也可以使用DFS判断图中是否存在环。详情请见:官方的BFS算法请忽略,BFS将问题的实际意义给模糊了,不如用普通拓扑排序思想。

数据结构:图的拓扑排序与关键路径

拓扑排序:

class Solution {
public:
    bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
        vector<int> degree(numCourses,0);
        vector<vector<int>> g(numCourses);
        int top=-1;
        int num=0;
        for(auto i:prerequisites){
            g[i[1]].emplace_back(i[0]);
            degree[i[0]]++;
        }
        for(int i=0;i<numCourses;++i) if(degree[i]==0) {degree[i]=top;top=i;num++;}
        while(top!=-1){
            int pre=top;top=degree[top];
            for(auto i:g[pre]){
                if(--degree[i]==0){
                    degree[i]=top;
                    top=i;
                    ++num;
                }
            }
        }
        return num==numCourses;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/490662.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手撕算法-三数之和

描述 分析 排序双指针直接看代码。 代码 public static List<List<Integer>> threeSum(int[] nums) {Arrays.sort(nums);List<List<Integer>> res new ArrayList<>();for(int k 0; k < nums.length - 2; k){if(nums[k] > 0) break; …

通讯录管理系统实现(C++版本)

1.菜单栏的设置 &#xff08;1&#xff09;我么自定义了一个showmenu函数&#xff0c;用来打印输出我们的菜单栏&#xff1b; &#xff08;2&#xff09;菜单栏里面设置一些我们的通讯录里面需要用到的功能&#xff0c;例如增加联系人&#xff0c;删除联系人等等 2.退出功能…

【Python系列】Python 中 YAML 文件与字典合并的实用技巧

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

MySQL数据库------------探索高级SQL查询语句

目录 一、常用查询 1.1按关键字排序 1.2简单的select条件查询(where) 二、排序 2.1升序排列 2.2降序排序 三、order by 查询结果排序 ①order by还可以结合where进行条件过滤&#xff0c;筛选地址是哪里的学生按分数降序排列 ②查询学生信息先按hobbyid降序排列&#…

面试官问我 ,try catch 应该在 for 循环里面还是外面?

首先 &#xff0c; 话说在前头&#xff0c; 没有什么 在里面 好 和在外面好 或者 不好的 一说。 本篇文章内容&#xff1a; 使用场景 性能分析 个人看法 1. 使用场景 为什么要把 使用场景 摆在第一个 &#xff1f; 因为本身try catch 放在 for循环 外面 和里面 &#…

(一)whatsapp 语音通话基本流程

经过了一整年的开发测试&#xff0c;终于将whatsapp 语音通话完成&#xff0c;期间主要参考webrtc的源码来实现.下面简要说一下大致的步骤 XMPP 协商 发起或者接受语音通话第一步是发起XMPP 协商&#xff0c;这个协商过程非常重要。下面是协商一个包 <call toxxxs.whatsap…

2024 年广西职业院校技能大赛高职组《云计算应用》赛项赛题第 4 套

#需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; 某企业根据自身业务需求&…

背包DP模板

01背包 01背包-1 #include <bits/stdc.h> using namespace std;const int N 1e5 10; int n, m, f[N][N], v[N], w[N];int main() {cin >> n >> m;for (int i 1; i < n; i) {cin >> v[i] >> w[i];}for (int i 1; i < n; i) {for (int…

构建多语言数字资产交易平台和秒合约系统:从概念到实现

多语言交易所开发定制秒合约平台币数字所网站制作一条龙搭建 第一步&#xff1a;需求分析 在开始搭建多语言交易所和秒合约平台之前&#xff0c;需要进行详细的需求分析&#xff0c;包括以下几个方面&#xff1a; 功能需求&#xff1a;确定交易所需要提供的功能&#xff0c;包…

要创建企业百度百科,需要注意以下技巧和原则。

&#xfffd;&#xfffd;&#xfffd;词条内容技巧 词条排版必须美观&#xff0c;内容分段&#xff0c;然后制作副标题。例如&#xff0c;一个企业的名称分为小标题&#xff0c;如企业介绍、企业文化、企业发展、企业历史和企业新闻。这不仅可以给读者一个良好的阅读&#xf…

Learn OpenGL 30 SSAO

SSAO 我们已经在前面的基础教程中简单介绍到了这部分内容&#xff1a;环境光照(Ambient Lighting)。环境光照是我们加入场景总体光照中的一个固定光照常量&#xff0c;它被用来模拟光的散射(Scattering)。在现实中&#xff0c;光线会以任意方向散射&#xff0c;它的强度是会一…

python 第一次作业

因为笔者有一些 c/c 语言的基础&#xff0c;所以应该学 python 会稍微简单一些 格式化输出的时候&#xff0c;保留2位小数的格式是 # 假设输出 a &#xff0c;并且 a 保留 2 位小数 print(%.2f%a)输入 输入的时候所有的输入都是字符串类型&#xff0c;我们需要进行类型转换 …

RHCE- 4-Web服务器(2)

基于https协议的静态网站 概念解释 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。 HTTP协议以明文方式发送内容&#xff0c;不提供任何方式的数据加密&#xff0c;如果攻击者截取了Web浏览器和网站服务器之间的传输报文&#xff0c;就可以直接读懂其中…

应用层协议 - HTTP

文章目录 目录 文章目录 前言 1 . 应用层概要 2. WWW 2.1 互联网的蓬勃发展 2.2 WWW基本概念 2.3 URI 3 . HTTP 3.1 工作过程 3.2 HTTP协议格式 3.3 HTTP请求 3.3.1 URL基本格式 3.3.2 认识方法 get方法 post方法 其他方法 3.3.2 认识请求报头 3.3.3 认识请…

day8 ARM

main.c #include"key_inc.h"//封装延时函数void delay(int ms){int i,j;for(i0;i<ms;i){for(j0;j<2000;j){}}}int main(){//按键中断的初始化key1_it_config();key2_it_config();key3_it_config();while(1){printf("in main pro\n");delay(1000);}re…

基于鹦鹉优化器(PO)的无人机路径规划

该优化算法是2024年新发表的一篇SCI二区论文&#xff0c;具有良好的实际应用和改进意义。一键运行main函数代码自动保存高质量图片 1、鹦鹉优化器 摘要&#xff1a;随机优化方法作为一种有效的技术在当代研究中得到了显著的突出&#xff0c;有效地解决了复杂的优化挑战。本文…

java的一些内部小知识,类与对象的关系

目录 1. java2. 类与对象的关系 1. java test.java ---- javac --> Test.class ---- java-----> 内存 ----> cpu 源文件 二进制代码 所有正在运行的软件都在内存中有自己的内存空间 jvm —>运行java程序的&#xff0c;java虚拟机 main(); // 内部调用run()run(i…

Fiddler抓包工具之Fiddler界面主菜单功能介绍

Fiddler界面主菜单功能介绍 File菜单 File菜单中的命令主要支持完成通过Fiddler来启动和停止web流量的捕获&#xff08;capture&#xff09;,也可以加载或存储捕获的流量 &#xff08;1&#xff09;Capture Traffic&#xff1a;默认勾选&#xff0c;勾选此项才可抓包&#xff…

什么洗地机值得推荐?高口碑品牌深度测评严选

在所有清洁电器中&#xff0c;洗地机的清洁力是大家公认的&#xff0c;像性能好的机子&#xff0c;家里的日常清洁基本都是一遍过&#xff0c;像有娃的&#xff0c;有狗子的家庭&#xff0c;再炸裂的场景&#xff0c;三两下就能还原如初&#xff01;如果你现在正在为了如何挑选…

《自动机理论、语言和计算导论》阅读笔记:p5-p27

《自动机理论、语言和计算导论》学习第2天&#xff0c;p5-p27总结&#xff0c;总计23页。 一、技术总结 1.集合 (1)commutative law of union. (2)distribute law of union. 2.归纳法(induction) & 演绎法(deduction) (1)归纳法&#xff1a;从许多个别的事实或原理中…