210. Course Schedule II(课程清单之二)

mysql 计算不同胜率的活跃玩家的次日,3日,7日留存率 它根据每天的日期(logymd)和最高段位(max_rank)、胜率段落(win_rate_segment)进行分组,并计算总玩家人数(total_players)、第二天的留存人数(next_day_players)、第三天的留存人数(day3_players)和第七天的留存人数(day7_players)。注意:不是新手留存,是段位活跃玩家留存;最终的结果则是将留存数据进行展示,按照日期(date)、最高段位(rank_level)、胜率段落(win_rate_segment)进行排序。 阅读详情

这道题没有什么好说的,因为基本解法都在上一篇博客(207. Course Schedule),这题就是多加一个vector来记录路径而已。

BFS做法:

class Solution {
public:
    vector<int> findOrder(int numCourses, vector<pair<int, int>>& prerequisites) {
        vector<vector<int>> graph(numCourses, vector<int>(0));
        vector<int> indegree(numCourses, 0);
        vector<int> path;
        queue<int> q;
        
        for (auto t : prerequisites) {
            graph[t.second].push_back(t.first);
            indegree[t.first]++;
        }
        int i;
        for (i = 0; i < indegree.size(); i++) {
            if (!indegree[i])
                q.push(i);
        }
        int count = 0;
        while (!q.empty()) {
            for (auto t : graph[q.front()]) {
                indegree[t]--;
                if (!indegree[t])
                    q.push(t);
            }
            path.push_back(q.front());
            q.pop();
            count++;
        }
        if (count == numCourses)
            return path;
        else
            return vector<int>();
    }
};

DFS做法:

bool DFS(vector<vector<int>>& graph, vector<int>& visit, int i, vector<int>& path) {
	if (visit[i] == -1)
		return false;
	if (visit[i] == 1)
		return true;
	visit[i] = -1;//等于-1代表不可重复
	for (auto t : graph[i]) {
		if (!DFS(graph, visit, t, path))
			return false;
	}
	visit[i] = 1;//等于1代表已访问
    path.push_back(i);
	return true;
}

class Solution {
public:
    vector<int> findOrder(int numCourses, vector<pair<int, int>>& prerequisites) {
        vector<int> visit(numCourses, 0);
        vector<vector<int>> graph(numCourses, vector<int>());
        vector<int> path;

        for (auto t : prerequisites) {
            graph[t.first].push_back(t.second);
        }

        for (int i = 0; i < graph.size(); i++) {
            if (!DFS(graph, visit, i, path))
                return vector<int>();
        }
        return path;
    }
};


OpenClaw Docker 安装与部署教程,环境隔离不冲突技术指南 本文介绍了使用Docker容器化部署OpenClaw的完整教程。首先通过流程图详细说明了Docker环境检测流程,包括系统支持性检查、Docker安装状态验证、版本检测和服务配置等步骤。然后提供了Windows、macOS和Linux(Ubuntu/CentOS)系统下的Docker安装指南,涵盖从下载、安装到权限配置的全过程。最后介绍了OpenClaw官方镜像的拉取方法以及自定义镜像构建的Dockerfile示例。该教程适用于开发和生产环境,利用Docker实现环境隔离和快速部署。 阅读详情

相关推荐

在centos7部署k8s搭建kubernetes集群

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务),管理员可以加载一个微型服务,让规划器来找

山东梅长苏 1万+

[LeetCode] 210. Course Schedule II 课程清单之二

There are a total ofncourses you have to take, labeled from0ton-1. Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a p...

weixin_30646315的博客 107

三维(点云)语义分割概述以及方法总结

语义分割 语义分割需要两部分 classification: 需要全局信息 segmentation:更加依赖全局信息和局部信息 一般的网络结构是: 提特征-特征映射-特征图压缩(降维)-全连接-分类,其实就是encoder-decoder的过程, 比如在二维的的pspnet,fcn等等 0. 三维表示的数据结构 Point cloud 无序性 点云实际上是无序的,比如有8个点云,你放到...

renhaofan的博客 3万+

leetcode 210. Course Schedule II | 210. 课程表 II(Java)

题目 https://leetcode.com/problems/course-schedule-ii/ 题解 本题与 leetcode 207. Course Schedule 基本相同,代码只需要稍作修改,将图的遍历顺序记录在一个 list 中。 import java.util.ArrayList; import java.util.Collections; class Node { int inDegree; ArrayList<Integer> children;

寒泉 5万+

3D IC中Memory-on-Logic堆叠测试的DFT解决方案与工程实践

在半导体行业,随着摩尔定律逼近物理极限,3D IC技术通过芯片垂直堆叠实现性能提升和异构集成,已成为重要发展方向。其核心原理是利用硅通孔(TSV)或微凸块实现芯片间电气互连,将多个不同功能的芯片(如逻辑芯片与存储芯片)集成在一个封装内。这项技术的核心价值在于能大幅提升系统性能、降低功耗并实现更小的封装尺寸。然而,芯片堆叠后,传统的测试方法面临巨大挑战,尤其是测试访问存在物理屏障,无法直接探测被覆盖的芯片接口。为此,可测试性设计(DFT)成为确保3D IC可靠性与量产可行性的关键技术。它通过在设计阶段植入专用

weixin_42521058的博客 632

Lumerical官方案例、FDTD时域有限差分法仿真学习(十三)——多模干涉耦合器(MMI)

计算通过 1×2 端口多模干涉 (MMI) 耦合器的宽带传输和光损耗。 使用设备 S 参数在 INTERCONNECT 中创建 MMI 的紧凑模型。 它还展示了如何使用 CML 编译器提取这些参数以生成紧凑模型。 一、概述 了解模拟工作流程和关键结果 低损耗光合路器和分路器是基于 Mach-Zehnder 的光调制器的基本组件,并且是集成电路的关键组成部分。通过在输入/输出波导处使用线性锥形确保输入/输出波导的模式与干涉区域之间的

weixin_45719141的博客 1万+

Leetcode 210 Course Schedule II 课程表II

你需要上n个课程,标记为0~n-1。有些课程有前导课,比如你要上课程0必须先上课程1,我们用一个整数对[0,1]来表示。给出课程的总数和一系列的课程先导关系对,返回可以上完所有的课程的上课顺序。可能存在多种正确的顺序,你只需要返回其中一种即可。如果不可能上完所有课程,返回一个空数组。

(ง •̀_•́)ง 2317

华为OD机试真题 新系统2026-04-15 C++ 实现【失灵的键盘】

有一个键盘有2个按键失灵了,按下这些键时会连续输出其他键对应的字符两次。具体如下: 1. 按下j键一次,屏幕上显示uu(两个连续的u);  按下b键一次,屏幕上显示t(两个连续的t) 2. u键和t键是好的,按下u键一次时,屏幕只会显示一次u(正常按键);按下t键一次时,屏幕只会显示一次t(正常按键) 3. 假定屏幕上连续显示两个t一定是按了一次b键,而不是两次t键;假定按键t之后不会紧接着按键b,即tttt转义为两个b,而不可能是tb

MISAYAONE的博客 212

LeetCode 210. Course Schedule II 题解

本题是拓扑排序的经典问题,是课程表问题的延伸,主要考察对拓扑排序算法的理解和应用。通过构建邻接表和入度数组,然后使用队列进行拓扑排序,我们可以不仅判断是否可以完成所有课程的学习,还可以返回具体的课程学习顺序。拓扑排序的核心思想是:按照依赖关系的顺序,依次处理入度为 0 的节点。如果最终所有节点都被处理,说明不存在环,返回处理顺序;否则,说明存在环,返回空数组。这种方法不仅适用于课程表 II 问题,还可以应用于许多其他需要处理依赖关系并返回处理顺序的场景,例如任务调度、编译顺序等。

cannonjinx的博客 4256

把静态前端托管进 SAP BTP:HTML5 Application Deployer 与企业级内容部署全攻略

本文介绍了在SAP BTP Cloud Foundry环境中使用HTML5 Application Repository托管前端静态资源的工程化实践。通过HTML5 Application Deployer工具,结合MTA描述、路由配置和服务实例,实现前后端解耦和标准化部署。文章详细阐述了目录结构、关键配置文件、MTA编排以及构建部署流程,并针对大体积前端资源提供了GACD和异步上传两种解决方案。最后说明了如何与AppRouter协同工作,使部署内容可供终端用户访问。这套方法使前端更新无需重启后端,支持团队

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 156

抖音 webmssdk 签名算法解析:X-Dynosaur / X-Gnarly / X-Bogus 生成原理

它只依赖设备指纹/环境编码与随机数,与 query 内容无关,因此可以独立于 Dynosaur/Gnarly 生成。

猫敷雪 200

leetcode 210: Course Schedule II

leetcode 210: Course Schedule II Course Schedule 2 java c++ python

西施豆腐渣 4641

汽车行业新能源汽车数据爬虫:抓取新能源汽车数据,分析市场发展和技术创新

在汽车行业,新能源汽车市场的发展和技术创新是当前的热点话题。通过抓取新能源汽车的数据,我们可以深入了解市场趋势、消费者需求以及技术创新的方向。本文将详细介绍如何使用 Python 爬虫技术抓取新能源汽车数据,并对数据进行分析和可视化展示。

u014481728的博客 1144

Leetcode 210.课程表 II(Course Schedule II)

Leetcode 210.课程表 II 1 题目描述(Leetcode题目链接)   现在你总共有 n 门课需要选,记为 0 到 n-1。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。 可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能...

qq_39378221的博客 290

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

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

LeetCode 210 Course Schedule II

There are a total of n courses you have to take, labeled from 0 to n - 1. >Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a pair: `[0,1

yanqinghe123的专栏 406

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

leetcode题集: 210. Course Schedule II

第13题:210.Course Schedule II 类似之前写的那篇,这里就不分析了。 题目具体分析请见leetcode题集: 207. Course Schedule和 拓扑排序 两篇文章。就是拓扑排序,加个打印输出拓扑序列。这里直接贴代码了: class Solution { public: vector<int> findOrder(int numC...

wx_14678的博客 206

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【LeetCode】210. Course Schedule II 课程表 II(Medium)(JAVA)

【LeetCode】210. Course Schedule II 课程表 II(Medium)(JAVA) 题目地址: https://leetcode.com/problems/course-schedule-ii/ 题目描述: There are a total of n courses you have to take labelled from 0 to n - 1. Some courses may have prerequisites, for example, if prerequ

qq_16927853的博客 211

Leetcode 207. Course Schedule 210. Course Schedule II

Leetcode 207. Course Schedule  import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class Solution { public boolean canFinish(int numCour

独钓寒江雪 318

【Leetcode】210. Course Schedule II

题目地址: https://leetcode.com/problems/course-schedule-ii/ 给定给定一个正整数代表需要修的课程数量,再给定修各个课程的先后次序关系(是一个二维数组,每个位置的(a,b)(a,b)(a,b)代表bbb是aaa的前置课程)。问是否存在一种上课顺序能上完所有的课。如果能,返回一种上课顺序;否则返回一个空数组。 用图论建模,可以把每个课程想象成图中的顶点......

数学、算法爱好者的博客 442

LeetCode 210. Course Schedule II【Java】

210. 课程表 II AC代码 本题和207.课程表类似,不过要求让我们输出排课的顺序,也就是拓扑序列了。 在这里返回结果的时候注意,如果这是个有环的图,那么答案数组返回的应该是空数组,之前我没注意,当样例如下时: 2 [[0,1],[1,0]] 返回的结果是[0,0],实际上应该是空数组。为了解决这个问题我们可以和207题一样,通过cnt来计数,最终和课程数相同的话,就返回答案数组否则返回空...

NayelyA的博客 281

210. Course Schedule II

210. Course Schedule II方法1: bfs方法2: dfs易错点Complexity There are a total of n courses you have to take, labeled from 0 to n-1. Some courses may have prerequisites, for example to take course 0 you have ...

wilzxu的博客 193

Leetcode210-Course Schedule II

我的新博客地址:Hu Haoyu’s Blog,欢迎参观! 共有n节课程,课程编号从0至n-1。一些课程可能有先修要求,比如修0号课程前需要先修1号课程,表示为[0,1]。题目给出课程数和先后修课程对,要求返回完成所有课程的顺序。可能有很多正确的上课顺序,你只需返回其中一种。如果不可能完成,则返回空数组。

coderhuhy的专栏 700

LeetCode 207. Course Schedule && LeetCode 210. Course Schedule II

LeetCode 207. Course Schedule && LeetCode 210. Course Schedule II (Medium) 主要知识点:拓扑排序、BFS、DFS;优先级:5

温迪今天刷题了吗 981

210. Course Schedule II( 课程表 II)

题目链接:https://leetcode.com/problems/course-schedule-ii/ 现在你总共有 n 门课需要选,记为 0 到 n-1。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。 可能会有多个正确的顺序,你...

God_Mood的博客 281
上一篇: 207. Course Schedule(课程计划)
下一篇: 310. Minimum Height Trees(最小高度树)
BetweenRain
博客等级 码龄9年 0粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值