Leetcode1462. 课程表 IV

autoDL算力云装Xinference[坑与步骤] 在页面直接点击下载会出现下着下载进度条消失,试了几次才出现这个报错,现在我们就继续安装缺少的包吧。这一步成功绕开了系统盘空间限制。先租用一个合适的服务器,建议不要选最新版本,跟我选的一样即可,不然后面会出现。最近在 AutoDL 上尝试部署。🚫 不要直接使用以下命令。点击下面链接即可打开。 阅读详情

Every day a Leetcode

题目来源:1462. 课程表 IV

解法1:拓扑排序

在这里插入图片描述

代码:

/*
 * @lc app=leetcode.cn id=1462 lang=cpp
 *
 * [1462] 课程表 IV
 */

// @lc code=start

// 拓扑排序(广度优先搜索)

class Solution
{
public:
    vector<bool> checkIfPrerequisite(int numCourses, vector<vector<int>> &prerequisites, vector<vector<int>> &queries)
    {
        // 邻接矩阵
        vector<vector<int>> graph(numCourses, vector<int>());
        // 入度数组
        vector<int> inDegree(numCourses, 0);
        vector<vector<bool>> isPre(numCourses, vector<bool>(numCourses, false));

        // 初始化邻接矩阵和入度数组
        for (vector<int> &p : prerequisites)
        {
            int from = p[0], to = p[1];
            graph[from].push_back(to);
            inDegree[to]++;
        }

        queue<int> q;
        // 把入度为 0 的节点(即没有前置课程要求)放在队列中
        for (int i = 0; i < inDegree.size(); i++)
            if (inDegree[i] == 0)
                q.push(i);

        while (!q.empty())
        {
            // 每次从队列中获得节点,我们将该节点放在排序的末尾,
            // 并且把它指向的课程的入度各减 1
            int u = q.front();
            q.pop();

            for (auto &v : graph[u])
            {
                // 存在一条 u->v 边
                isPre[u][v] = true;
                // 更新所有 i->u->v 的路径
                for (int i = 0; i < numCourses; i++)
                    isPre[i][v] = isPre[i][v] | isPre[i][u];

                inDegree[v]--;
                // 有课程的所有前置必修课都已修完(即入度为 0),
                // 我们把这个节点加入队列中
                if (inDegree[v] == 0)
                    q.push(v);
            }
        }

        vector<bool> ans;
        for (auto &query : queries)
        {
            int from = query[0], to = query[1];
            ans.push_back(isPre[from][to]);
        }

        return ans;
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(numCourses3),其中 numCourses 为课程数。其中通过计算矩阵 isPre 的时间复杂度为 O(numCourses2×numCourses)=O(numCourses3),构建有向图的复杂度为 O(numCourses+n),处理每一个查询的复杂度为 O(1),共有 m 个查询,所以总的查询时间复杂度为 O(m)。

空间复杂度:O(numCourses2+n),其中 numCourses 为课程数,n 为题目给出的先决条件的数目,主要为构建有向图和矩阵 isPre 的空间开销。

【保姆级教程】基于UNet++&MobileNetv2的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300% 通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv2作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。 阅读详情

相关推荐

为什么传统CNN在视网膜分割中败给Mamba?从血管拓扑学揭秘Serp-Mamba的蛇形扫描黑科技

本文深入分析了传统CNN在视网膜血管分割任务中的局限性,特别是在处理高分辨率图像和复杂血管拓扑结构时。针对这些问题,文章重点介绍了Serp-Mamba模型的核心创新——蛇形交织自适应扫描(SIA)机制,该机制通过让扫描路径自适应地贴合血管曲率,并结合模糊驱动双重校准(ADDR)模块应对极端类别失衡,从而在视网膜血管分割任务上实现了性能的显著突破。

ss78901的博客 897

leecode|课程表

你会得到一个数组 prerequisite ,其中 prerequisites[i] = [ai, bi] 表示如果你想选 bi 课程,你 必须 先选 ai 课程。如果课程 a 是课程 b 的先决条件,课程 b 是课程 c 的先决条件,那么课程 a 就是课程 c 的先决条件。有的课会有直接的先修课程,比如如果想上课程 1 ,你必须先上课程 0 ,那么会以 [0,1] 数对的形式给出先修课程数对。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1。返回你最多可以修读的课程数目。

ttxiaoxiaobai的博客 280

每天10分钟,混剪视频Agent产出50条爆款,单月变现6位数(喂饭级教程)

混剪视频是指将多个视频片段、图片或音频素材进行剪辑组合,创造出新的视频内容。随着Coze上线联动剪映功能,混剪视频制作正在进入自动化时代,为创作者带来巨大便利。高效自动化处理:AI可以自动完成琐碎的剪辑工作,让创作者省下大量时间专注于项目策划和创意。批量素材产出:特别适用于抖音、小红书和视频号等平台上的养生、科普、心理、疗愈等垂直领域,可以自动化批量生产图片和视频素材。引流获客:通过优质内容吸引目标受众知识变现:通过教学传授技术工具变现:将搭建好的工作流作为产品销售。

汤师爷的博客 867

【Leetcode刷题篇】- Leetcode1462 课程表IV

Floyd-1.Leetcode1462课程表IV 你总共需要上 n 门课,课程编号依次为 0 到 n-1 。 有的课会有直接的先修课程,比如如果想上课程 0 ,你必须先上课程 1 ,那么会以 [1,0] 数对的形式给出先修课程数对。 给你课程总数 n 和一个直接先修课程数对列表 prerequisite 和一个查询对列表 queries 。 对于每个查询对 queries[i] ,请判断 queries[i][0] 是否是 queries[i][1] 的先修课程。 请返回一个布尔值列表,列表中每个元素依次

Mind_programmonkey的博客 523

材料仿真软件:Materials Studio_(14).电学性质计算

设置计算参数,包括 k 点网格、交换相关泛函等。

kkchenjj的博客 1868

《QGIS快速入门与应用基础》230:添加图例工具

本文系统讲解QGIS图例制作的核心方法与优化技巧。首先强调图例与地图框的绑定逻辑,提出三种绑定状态及适用场景。详细拆解三种图例添加方法:布局工具栏一键添加法(新手首选)、菜单栏添加法和右键快捷创建法,并给出单地图框和多地图框两种典型场景的规范技巧。重点解决新手常见的图例杂乱、样式不规范、内容脱节等问题,帮助用户从基础图例制作进阶到符合行业标准的专业图例设计。通过分步操作图示和实用技巧,使读者能够快速掌握图例创建的核心流程与优化方法。

LuckyHanMo的博客 555

力扣1462. 课程表 IV

题目要求判断query中每组询问是否正确判断是否先决,拓扑排序 + 所有先决条件都存在二维数组中,询问直接调用。

Pisasama的博客 368

深度解析大众点评反爬机制:构建高可用店铺评论采集系统(2026最新实战)

在中文互联网数据采集领域,大众点评(现归属美团)始终占据着特殊地位。其丰富的UGC(用户生成内容)包含了超过2亿条真实店铺评论、数百万家商户的详细POI信息以及用户行为数据,对商业分析、口碑监测、本地生活趋势研究具有不可替代的价值。然而,大众点评的安全团队投入了顶级资源构建反爬系统——从请求签名、行为验证到设备指纹,其防御强度甚至超过多数电商平台。本文将完整呈现一套2026年依然有效的技术方案,包括破解核心参数_token、动态代理池维护、无头浏览器指纹伪装等,最终产出一个生产级采集框架。目录。

2201_76125261的博客 815

[leetcode]1462. 课程表 IV

如果课程 a 是课程 b 的先决条件,课程 b 是课程 c 的先决条件,那么课程 a 就是课程 c 的决条件。q次询问 给出一个queries数组 返回每个询问是true/false 以数组形式返回。给定n个课程 ,一个二维数组。这样查询的时候只需要。

weixin_45413272的博客 418

自适应滤波-----LMS(Least Mean Square)算法

自适应滤波的意义所在 自适应滤波器解决非平稳的过程,因为实际信号的统计特性可能是非平稳的或者是未知的。 自适应滤波器的特点: 1.没有关于待提取信息的先验统计知识 2.直接利用观测数据依据某种判据在观测过程中不断递归更新 3.最优化 自适应滤波分类: 处理器的结构划分:横向结构、格型结构 重复一次计算自适应需要的数据划分:成批处理法、递归处理法 按调节算法...

heda3的博客 10万+

【经验&技巧】DDR仿真中的挑战与解决方案

由于DDR的数据总线具备双向数据传输功能,需要对读写模式进行独立仿真环境的创建,并且分为连续和突发模式,再加之有单端和差分信号、有数据总线和地址总线,需要在数据传输过程中额外注意串扰的影响,并选择合适的驱动和负载以找寻设计裕量与串扰强度之间的平衡,因此,实际操作步骤和分析过程还是较为繁琐耗时的,需要设计者具有足够的耐心。

一只豌豆象的博客 1643

leetcode 1462. Course Schedule IV 课程表 IV

Problem:状态表 + 深度优先搜索,若从起点出发找到了target目标就提前结束搜索,用flag来标记。

邹九的个人博客 112

汽车UDS诊断之诊断会话控制服务(0x10)深度剖析

DiagnosticSessionControl就是诊断会话控制。 请求消息定义 A_Data类型 参数名称 Cvt 字节值 助记符 #1 诊断会话控制请求SID M 0x10 DSC #2 子功能=[诊断会话类型] M 0x00-0xFF LEV_DS_ ...

心骗小白话的博客 7421

LeetCode每日一题:1462. 课程表 IV(2023.9.12 C++)

bfs拓扑排序。

Cosmoshhhyyy的博客 406

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Leetcode1462-课程表 IV

lc

aaa7888210的博客 214

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

scala 刷LeetCode题——1462. 课程表 IV

采用拓扑排序和递归算法实现了先修课程的问题,语言是scala。

XMZHSY的博客 436

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LeetCode 1462. 课程表 IV:拓扑排序

LeetCode 1462. 课程表 IV:拓扑排序 你总共需要上 numCourses 门课,课程编号依次为 0 到 numCourses-1 。你会得到一个数组 prerequisite ,其中 prerequisites[i] = [ai, bi] 表示如果你想选 bi 课程,你 必须 先选 ai 课程。 有的课会有直接的先修课程,比如如果想上课程 1 ,你必须先上课程 0 ,那么会以 [0,1] 数对的形式给出先修课程数对。 先决条件也可以是 间接 的。如果课程 a 是课程 b 的先决条件,课程

<font color="Pink">Tisfy的博客</font> 551

0记忆深度搜索中等 LeetCode1462. 课程表 IV

1462. 课程表 IV 描述 你总共需要上 n 门课,课程编号依次为 0 到 n-1 。 有的课会有直接的先修课程,比如如果想上课程 0 ,你必须先上课程 1 ,那么会以 [1,0] 数对的形式给出先修课程数对。 给你课程总数 n 和一个直接先修课程数对列表 prerequisite 和一个查询对列表 queries 。 对于每个查询对 queries[i] ,请判断 queries[i][0] 是否是 queries[i][1] 的先修课程。 请返回一个布尔值列表,列表中每个元素依次分别对应 queri

31楼下小黑的博客 219

力扣:1462. 课程表 IV

力扣:1462. 课程表 IV

newOneObject的博客 138

leetcode 1462.课程表IV

感觉这道题其实没必要用拓补排序那一套,倒是可以用普通的dfs来判断。dfs直接暴力就行了,用一个二维数组存储图,然后dfs这张图就行了。

m0_73917165的博客 166

LeetCode每日一题 1462. 课程表 IV

为了做到这一点,我们可以使用深度优先搜索(DFS)或广度优先搜索(BFS)来遍历图,并检查是否从课程。门课程,以及一些课程之间的先决条件关系,然后给出一些查询,查询课程是否是其他课程的先决条件。这个问题可以使用图的拓扑排序来解决。首先,我们需要根据给定的先决条件关系构建课程之间的有向图。构建课程之间的有向图,可以使用邻接表或邻接矩阵表示。,使用 DFS 或 BFS 遍历图,检查是否从课程。如果可以到达,则将查询的答案设置为。的先决条件,否则不是。

wxhzly__030的博客 262

leetcode 弗洛伊德算法 1462. 课程表 IV

1462. 课程表 IV class Solution { public: vector<bool> checkIfPrerequisite(int n, vector<vector<int>>& prerequisites, vector<vector<int>>& queries) { vector<vector<bool> > dist(n, vector<bool&gt

izhxxx的博客 220

【C语言刷LeetCode】1462. 课程表 IV(M)

输入numCourses=3,prerequisites=[[1,2],[1,0],[2,0]],queries=[[1,0],[1,2]]输入numCourses=2,prerequisites=[[1,0]],queries=[[0,1],[1,0]]输入numCourses=2,prerequisites=[],queries=[[1,0],[0,1]]解释课程0不是课程1的先修课程,但课程1是课程0的先修课程。...

kinbo88的专栏 307

【LeetCode: 1462. 课程表 IV:拓扑排序+图+广度优先搜索】

LeetCode: 1462. 课程表 IV:拓扑排序+图+广度优先你总共需要上 numCourses 门课,课程编号依次为 0 到 numCourses-1 。你会得到一个数组 prerequisite ,其中 prerequisites[i] = [ai, bi] 表示如果你想选 bi 课程,你 必须 先选 ai 课程。有的课会有直接的先修课程,比如如果想上课程 1 ,你必须先上课程 0 ,那么会以 [0,1] 数对的形式给出先修课程数对。先决条件也可以是 间接 的。如果课程 a 是课程 b 的先决条件

Coder_ljw的博客 390

LeetCode_拓扑排序_BFS_中等_1462.课程表 IV

你总共需要上 numCourses 门课,课程编号依次为 0 到 numCourses - 1 。你会得到一个数组 prerequisite ,其中 prerequisites[i] = [ai, bi] 表示如果你想选 bi 课程,你必须先选 ai 课程。有的课会有直接的先修课程,比如如果想上课程 1 ,你必须先上课程 0 ,那么会以 [0,1] 数对的形式给出先修课程数对。

代码星辰的博客 539

LeetCode刷题日记(1462. 课程表 IV)

【代码】LeetCode刷题日记(1462. 课程表 IV)

weixin_45401894的博客 145
上一篇: Leetcode3066. 超过阈值的最少操作数 II
下一篇: 最简单的基于 FFmpeg 的 AVDevice 例子(读取摄像头)
UestcXiye
博客等级 码龄8年 9031粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值