C语言 | Leetcode C语言题解之第207题课程表

题目:

题解:

bool canFinish(int numCourses, int** prerequisites, int prerequisitesSize, int* prerequisitesColSize) {int** edges = (int**)malloc(sizeof(int*) * numCourses);for (int i = 0; i < numCourses; i++) {edges[i] = (int*)malloc(0);}int edgeColSize[numCourses];memset(edgeColSize, 0, sizeof(edgeColSize));int indeg[numCourses];memset(indeg, 0, sizeof(indeg));for (int i = 0; i < prerequisitesSize; ++i) {int a = prerequisites[i][1], b = prerequisites[i][0];edgeColSize[a]++;edges[a] = (int*)realloc(edges[a], sizeof(int) * edgeColSize[a]);edges[a][edgeColSize[a] - 1] = b;++indeg[b];}int q[numCourses];int l = 0, r = -1;for (int i = 0; i < numCourses; ++i) {if (indeg[i] == 0) {q[++r] = i;}}int visited = 0;while (l <= r) {++visited;int u = q[l++];for (int i = 0; i < edgeColSize[u]; ++i) {--indeg[edges[u][i]];if (indeg[edges[u][i]] == 0) {q[++r] = edges[u][i];}}}for (int i = 0; i < numCourses; i++) {free(edges[i]);}free(edges);return visited == numCourses;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL中使用IF语句实现条件判断

SQL中使用IF语句实现条件判断 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨在SQL中如何使用IF语句进行条件判断。IF语句在SQL中是一种强大…

【Linux】部署NFS服务实现数据共享

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…

Python基础总结之isinstance()

Python基础总结之isinstance() 在Python中&#xff0c;isinstance() 是一个非常有用的内置函数&#xff0c;用于判断一个对象是否是一个已知的类型。这个函数在处理继承和多态时特别有用&#xff0c;因为它会考虑继承关系。 技术介绍 isinstance() 函数的基本语法如下&#xf…

4-数据提取方法2(xpath和lxml)(6节课学会爬虫)

4-数据提取方法2&#xff08;xpath和lxml&#xff09;&#xff08;6节课学会爬虫&#xff09; 1&#xff0c;Xpath语法&#xff1a;&#xff08;1&#xff09;选择节点&#xff08;标签&#xff09;&#xff08;2&#xff09;“//”:能从任意节点开始选择&#xff08;3&#xf…

ArcGIS Pro SDK (七)编辑 7 操作Blob字段

ArcGIS Pro SDK &#xff08;七&#xff09;编辑 7 操作Blob字段 目录 ArcGIS Pro SDK &#xff08;七&#xff09;编辑 7 操作Blob字段1 使用属性检查器读取和写入 Blob 字段2 在回调中使用行游标读取和写入 Blob 字段 环境&#xff1a;Visual Studio 2022 .NET6 ArcGIS Pro…

计算机网络面试TCP篇之TCP三次握手与四次挥手

TCP 三次握手与四次挥手面试题 任 TCP 虐我千百遍&#xff0c;我仍待 TCP 如初恋。 巨巨巨巨长的提纲&#xff0c;发车&#xff01;发车&#xff01; PS&#xff1a;本次文章不涉及 TCP 流量控制、拥塞控制、可靠性传输等方面知识&#xff0c;这些知识在这篇&#xff1a; TCP …

第3章:数据结构

树 对稀疏矩阵的压缩方法有三种&#xff1a; 1、三元组顺序表 2、行逻辑连接的顺序表 3、十字链表 同义词才会占用同个位置&#xff0c;从而需要进行多次比较。这些关键字的第一个可以不是e的同义词&#xff0c;可以是排在e之前的关键字正好占了那个位置。 Dijkstra算法主要特点…

何处理Java中的ZipException异常?

如何处理Java中的ZipException异常&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在Java编程中&#xff0c;处理压缩文件&#xff08;如ZIP文件…

jenkins 发布服务到 windows服务器

1.环境准备 1.1 这些就不过多描述了&#xff0c;可以参考我的另一盘文章部署到linux。 jenkins 发布服务到linux服务器-CSDN博客 1.2 需要再windows上安装openssh 地址&#xff1a;Releases PowerShell/Win32-OpenSSH GitHub 到windows上执行安装&#xff0c;可以里面cmd命令…

【Oracle运维】导出数据库中的数据SQL查询结果保存到文件

Oracle SQL查询结果导出到文件、SET命令用法学习 1 概述2 导出到文件的方法2.2 命令行方式-sqlplus方式导出指定SQL查询的结果到csv文件步骤1&#xff1a;system或者实际其他的oracle账号登录到sqlplus命令行界面**步骤2&#xff1a;执行SQL查询语句前的设置目标导出文件内容格…

Java的限制序列化和常用IO流

一.限制序列化 a.问题 出于安全考虑&#xff0c;对于一些比较敏感的信息(如用户密码)&#xff0c;应限制被序列化&#xff0c;如何实现? ◆使用transient关键字修改不需要序列化的对象属性 b.示例 ◆希望Person类对象中的年龄信息不被序列化 二.Java常用IO流有哪些&#x…

人脸特征68点识别 C++

1、加载一张图片 main函数&#xff1a; cv::Mat img cv::imread("5.jpg");vector<Point2f> points_vec dectectFace68(img);2、人脸68特征识别函数 在这里vector<Point2f> dectectFace68(Mat src) {vector<Point2f> points_vec;int* pResults …

【SpringCloud】Eureka源码解析 上

Eureka是一个服务发现与注册组件&#xff0c;它包含服务端和客户端&#xff0c;服务端管理服务的注册信息&#xff0c;客户端简化服务实例与服务端的交互。我们结合源码来分析下eureka组件的实现原理&#xff0c;内容分为上下两章&#xff0c;第一章分析eureka的服务注册&#…

ubuntu apt命令 出现红色弹框 Daemons using outdated libraries

1. 弹框没截图&#xff0c;是因为ubuntu22.04一个新特性导致的&#xff0c;由 needrestart 命令触发&#xff0c;默认情况是交互性质的&#xff0c;也就是会中断在这里需要手动要处理提示。 2. 修改/etc/needrestart/needrestart.conf 文件&#xff0c;将 #$nrconf{restart} …

【区分vue2和vue3下的element UI PageHeader 页头组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Vue 2 中&#xff0c;Element UI 并没有一个直接命名为 PageHeader 的组件。然而&#xff0c;你可能是在寻找一种方式来创建自定义的页头&#xff08;Page Header&#xff09;&#xff0c;这通常是通过组合 Element UI 的其他组件&#xff08;如 el-header、el-row、el-col、…

大数据开发中如何计算用户留存及SQL示例

在大数据开发领域&#xff0c;用户留存是一个关键指标&#xff0c;它反映了产品吸引并保留用户的能力。 留存率的计算不仅有助于评估产品的健康状况&#xff0c;还能为产品优化和市场策略提供重要依据。 本文将详细介绍如何在大数据开发中计算用户留存&#xff0c;并附带具体…

gpu是什么?

GPU&#xff08;Graphics Processing Unit&#xff0c;图形处理单元&#xff09;是一种专门在个人电脑、工作站、游戏机以及一些移动设备&#xff08;如平板电脑、智能手机等&#xff09;上进行图像和图形相关运算工作的微处理器。以下是关于GPU的详细解释&#xff1a; 1. **定…

精密空气加热器负载组

小型便携式 &#xff1a;精密空气加热器&#xff08;负载组&#xff09;能够对数据中心热通道/冷通道冷却系统进行全面测试。EAK 是一款 19 英寸机架式设备&#xff08;10U 高&#xff09;&#xff0c;可轻松安装到各种标准服务器机架中。通过集成可调节的热量水平&#xff08;…

决策树算法介绍:原理与案例实现以及Python、R、Java、 MATLAB中使用

决策树&#xff08;Decision Tree&#xff09;是一种常用的机器学习算法&#xff0c;适用于分类和回归任务。它通过一系列的二分决策将数据逐步划分成不同的子集&#xff0c;直到每个子集中的数据点具有较高的同质性。下面介绍决策树的基本原理&#xff0c;并通过Python实现一个…

C++ :lambda表达式

目录 lambda表达式书写格式&#xff1a; lambda表达式各部分说明&#xff1a; lambda的使用示范&#xff1a; 注意事项&#xff1a; 返回值类型可以省略&#xff0c;参数也可也省略&#xff1a; sort内部也可以直接写lambda表达式&#xff1a; 排序时利用lambda进行排序…