You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

拓扑排序 - 创建有向图问题

拓扑排序是一种对有向无环图(DAG)进行排序的算法。它的基本思想是通过不断删除入度为0的顶点来排序,直到所有顶点都被排序。以下是一种用于创建有向图并进行拓扑排序的示例解决方法:

from collections import defaultdict

class Graph:
    def __init__(self, num_vertices):
        self.num_vertices = num_vertices
        self.graph = defaultdict(list)

    def add_edge(self, u, v):
        self.graph[u].append(v)

    def topological_sort_util(self, v, visited, stack):
        visited[v] = True

        for neighbor in self.graph[v]:
            if not visited[neighbor]:
                self.topological_sort_util(neighbor, visited, stack)

        stack.append(v)

    def topological_sort(self):
        visited = [False] * self.num_vertices
        stack = []

        for i in range(self.num_vertices):
            if not visited[i]:
                self.topological_sort_util(i, visited, stack)

        return stack[::-1]

# 创建有向图
g = Graph(6)
g.add_edge(5, 2)
g.add_edge(5, 0)
g.add_edge(4, 0)
g.add_edge(4, 1)
g.add_edge(2, 3)
g.add_edge(3, 1)

# 进行拓扑排序
result = g.topological_sort()
print("拓扑排序结果:", result)

输出结果为:

拓扑排序结果: [5, 4, 2, 3, 1, 0]

在该示例中,我们首先创建了一个有向图,并添加了一些边。然后,我们调用 topological_sort() 方法进行拓扑排序。在 topological_sort() 方法中,我们首先创建一个空的栈和一个布尔数组 visited 来跟踪已访问的顶点。然后,我们遍历所有顶点,对未访问的顶点调用 topological_sort_util() 方法进行深度优先搜索。在 topological_sort_util() 方法中,我们首先将当前顶点标记为已访问,并递归访问所有邻居顶点。最后,我们将当前顶点压入栈中。最后,我们返回栈的逆序,即为拓扑排序的结果。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

2022技术盘点之平台云原生架构演进之道|社区征文

多云管理平台解决异构的基础设施资源复杂难管理问题。平台可纳管不同环境、不同云厂商资源统一管理,并结合平台的统一监控告警、统一服务管理、统一运营管理、统一运维管理、自动化运维等能力能极大简化云用户、云运... Kubernetes 会自动创建一个新的 GitLab-Runner 容器,并挂载同样的 Runner 配置,使服务达到高可用。- 弹性伸缩:触发式任务,合理使用资源,每次运行脚本任务时,Gitlab-Runner 会自动创建一个或多个新的临时 Runner来...

本周自动化流程模板推荐

[(点击文字或图片使用此模板)](https://www.jijyun.cn/apps/processes/1526) **使用场景**每当红圈CRM里有新创建的客户时,通过集简云Webhook自动获取红圈业务数据,并通过内置应用数据存储累加自动排序生成客户编码,然后自动将客户编码同步创建在用友U8。 **适用人群:**销售、采购、库管**推荐指数:**⭐⭐⭐⭐⭐ **模板3:微信公众号有留...

本周自动化流程模板推荐

[(点击文字或图片使用此模板)](https://www.jijyun.cn/apps/processes/1526) **使用场景**每当红圈CRM里有新创建的客户时,通过集简云Webhook自动获取红圈业务数据,并通过内置应用数据存储累加自动排序生成客户编码,然后自动将客户编码同步创建在用友U8。 **适用人群:**销售、采购、库管**推荐指数:**⭐⭐⭐⭐⭐ **模板3:微信公众号有留...

State Migration on Flink SQL

问题解决及未来规划。作者|字节跳动基础架构工程师-周伊莎 # 背 景Flink SQL 作为实时数仓建设中重要的工具,能够**帮助用户快速开发流式任务,支持实时数据处理的场景和需求**。相比 DataStream 作业,SQL 作业在开发成本和维护成本上都具有非常大的优势,无需掌握复杂的开发语言,编程环境等等,无需经历打包,部署等耗时的流程,简单地编辑 SQL 语句即可创建拥有复杂逻辑的流式任务。然而,对用户屏蔽掉底层细节,意味着 SQL ...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

拓扑排序 - 创建有向图问题-优选内容

私有化V4.2.0发版日志
创建人定位看板进行授权或移交操作 对【看板、文件夹、图表】进行单一或批量【删除、授权、移交】。移交后,原所属人保留【编辑】权限。 事件分析图表配置功能模块 使用介绍: 新增支持双轴图,能对双轴进行配置; 折线图支持累计计算的能力,生成累计图; 支持对查询结果进行排序,支持从名称AZ、从名称ZA、按总值升序、按总值降序、按配置顺序五种方式; 留存指标单独配置关联属性 支持针对每个留存指标单独配置关联属性。 配置...
2024年03月
发布时间:2024-03-29发布版本:V1.22迭代说明: 标签体系 更新类型 功能描述 产品截图说明 优化 标签更新与上游依赖逻辑优化: 定时更新的标签: 不与手动更新的上游标签建立依赖关系,仍与数据源有依赖; 手动更新的... 逻辑(与原圈选结果平级排列)。更新后,支持用户快速创建具有排除条件的分群包,使得新建分群包结果含义为人群不属于event_x 的用户。举例说明: 为了筛选出全量用户中最近7天小程序活动互动>3次,但没有下单的用户。只...
RDMA 拓扑感知调度
本文主要介绍使用 RDMA 拓扑感知调度的方法以及使用限制等。 说明 【邀测·申请试用】:该功能目前处于邀测阶段,如需使用,请提交申请。 背景信息在大模型训练等 AI 场景中,经常会出现一个 Job 中的多个 Pod 并行执... 请先创建集群。详细操作,请参见 创建集群。 组件依赖 katalyst 组件(邀测中) scheduler-plugin 组件 rdma-device-plugin 组件(邀测中) 邀测中 的组件,请 提交试用申请 或联系您火山引擎容器服务业务的对接人员获...
最新动态(2024年前)
包含报告概览核心指标显著性去除60天最大限制和指标报告的实验版本排序优化 优化创建指标弹窗速度 2022年08月11日 V1.9.8版本 迭代说明: 数据管理优化:用户属性-预置属性支持更改状态,不包括:ab_version、app_platform、app_version、os_name 伪父子请求实验列表接口优化 2022年07月18日 V1.9.6版本 迭代说明: 线上售卖支持新的计价方式 父子实验支持命中实验人群 分流升级IP定位SDK 实验创建留存指标的问题 2022年06月16日 1...

拓扑排序 - 创建有向图问题-相关内容

2022技术盘点之平台云原生架构演进之道|社区征文

多云管理平台解决异构的基础设施资源复杂难管理问题。平台可纳管不同环境、不同云厂商资源统一管理,并结合平台的统一监控告警、统一服务管理、统一运营管理、统一运维管理、自动化运维等能力能极大简化云用户、云运... Kubernetes 会自动创建一个新的 GitLab-Runner 容器,并挂载同样的 Runner 配置,使服务达到高可用。- 弹性伸缩:触发式任务,合理使用资源,每次运行脚本任务时,Gitlab-Runner 会自动创建一个或多个新的临时 Runner来...

新功能发布记录

新建和查看证书 2024 年 3 月发布时间 功能模块 说明 相关文档 2024-03-07 网站接入 负载均衡 4 层 TCP 接入支持 IPv6 接入。 通过负载均衡(CLB)4 层 TCP 监听器接入云 WAF 实例 2024-03-07 网站接入 优化网站列表搜索、筛选和排序功能。 - 2024 年 1 月发布时间 功能模块 说明 相关文档 2024-01-31 全部 Open API 发布,包括网站接入、防护策略配置、IP 地址组管理和证书管理。 API 列表 2024-01-31 网...

组件拓扑管理

在弹出的面板中可以查看组件部署的拓扑详情。具体介绍如下: 内容 说明 组件名称 服务中所包含的组件名称 组件状态 组件的运行状态,包括UNKNOWN(未知,如网络断开),INTALLING(安装中),STOPPED/INSTALLED(已停止/已安装),STARTING(启动中),STARTED(已启动),STOPPING(停止中),INSTALLED_FAILED(安装失败)等7个状态)。 ECS ID 组件所安装的ECS信息,点击ID可前往ECS管理控制台查看主机详情 主机名称 创建的主机名称 实例类型 所安装的主...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

State Migration on Flink SQL

问题解决及未来规划。作者|字节跳动基础架构工程师-周伊莎 # 背 景Flink SQL 作为实时数仓建设中重要的工具,能够**帮助用户快速开发流式任务,支持实时数据处理的场景和需求**。相比 DataStream 作业,SQL 作业在开发成本和维护成本上都具有非常大的优势,无需掌握复杂的开发语言,编程环境等等,无需经历打包,部署等耗时的流程,简单地编辑 SQL 语句即可创建拥有复杂逻辑的流式任务。然而,对用户屏蔽掉底层细节,意味着 SQL ...

State Migration on Flink SQL

问题解决及未来规划。作者|字节跳动基础架构工程师-周伊莎 **01** **背 景** Flink SQL 作为实时数仓建设中重要的工具,能够**帮助用户快速开发流式任务,支持实时数据处理的场景和需求**。相比 DataStream 作业,SQL 作业在开发成本和维护成本上都具有非常大的优势,无需掌握复杂的开发语言,编程环境等等,无需经历打包,部署等耗时的流程,简单地编辑 SQL 语句即可创建拥...

火山引擎DataLeap数据调度实例的 DAG 优化方案 (一):问题与需求分析

DAG:全称为 Directed Acyclic Graph,指有向无环图,具备严密的拓扑性质,有很强的流程表达能力。DataLeap 是火山引擎自研的一站式大数据中台解决方案,集数据集成、开发、运维、治理、资产管理能力于一身的大数据研... 并完成问题定位和运维操作,则是实例 DAG 需要解决的问题。下面对比下优化前后的效果。优化前:![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/92c501cc5cfe4c519b10dc9da6...

Kubernetes 观测:基于 eBPF 的云原生深度可观测性实践

这些问题,也正是真正困扰技术团队的问题。根据可观测性模型理论,要能够回答这些问题,核心要实现的 2 个必要维度便是:**拓扑**和 **时间**。拓扑可视化让工程师得以在全栈活动的上下文中查看来自网络、基础... ## **eBPF 具备全栈深度观测潜力**除了提供了很多预定义的 Hook 之外,eBPF 还允许我们创建内核探针 (kprobe) 或用户探针 (uprobe) 来将 eBPF 程序附加到内核或用户应用程序中的几乎任何位置。如下图所示,工程师...

数据存储

1 使用前提已创建 EMR-3.1.0 以上版本的 Hadoop 集群类型,详见创建集群。 数据地图中已完成 EMR Hive 元数据采集。详见元数据采集。 已购买 DataLeap 分布式数据自治服务。详细操作说明请参见 DataLeap 服务信息。... 重新建表,采用 Parquet 或者 ORC 存储格式,并回溯数据。 近 30 天无查询 最近 30 天内没有相关查询。 确认相关业务是否已暂停,若业务已停止,建议删除该表。 层级信息缺失 当前表缺失层级信息。 在数据地图...

查看实例拓扑

通过实例拓扑您可以获得实例的节点信息、连接终端信息以及节点与连接终端之间的关联情况。本文介绍如何查看 veDB MySQL 实例的拓扑信息。 前提条件已创建实例且实例处于运行中状态。具体操作,请参见创建实例。 操作步骤登录云数据库 veDB MySQL 版控制台。 在顶部菜单栏的左上角,选择实例所属的项目和地域。 在实例列表页面,单击目标实例名称,进入实例信息页。 单击连接管理页签,即可查看实例的节点信息、拓扑信息和连接终端信...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询