当前位置: 首页 > article >正文

Day58 图论part08

拓扑排序精讲

拓扑排序看上去很复杂,其实了解其原理之后,代码不难

代码随想录

import java.util.*;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int m = sc.nextInt();
        
        List<List<Integer>> last = new ArrayList<>();
        for(int i = 0; i < n; i++){
            last.add(new ArrayList<>());
        }
        
        int[] inDegree = new int[n];
        
        for(int i = 0; i < m; i++){
            int star = sc.nextInt();
            int end = sc.nextInt();
            inDegree[end]++;
            last.get(star).add(end);
        }
        
        Deque<Integer> queue = new ArrayDeque<>();
        List<Integer> result = new ArrayList<>();
        
        
        for(int i = 0; i < inDegree.length; i++){
            if(inDegree[i] == 0){
                queue.add(i);
                //result.add(i);
            }
        }
        
        while(!queue.isEmpty()){
            int cur = queue.remove();
            result.add(cur);
            
            if(last.get(cur).

http://www.kler.cn/a/458619.html

相关文章:

  • 【专题】2024年出口跨境电商促销趋势白皮书报告汇总PDF洞察(附原数据表)
  • MySQL日常巡检
  • C++中生成0到180之间的随机数
  • 《向量数据库指南》——Milvus Cloud 2.5:Sparse-BM25引领全文检索新时代
  • 【笔记】增值税计算笔记
  • pandas删除值全部为0的整行和整列,还有0.0,0.000000也要删除
  • HarmonyOS NEXT应用开发实战:免费练手的网络API接口分享
  • 手机租赁平台开发全攻略打造高效便捷的租赁服务系统
  • 【Java 数据结构】面试题 02.02. 返回倒数第 k 个节点
  • 计算机网络 (7)物理层下面的传输媒体
  • 宝塔-firefox(Docker应用)-构建自己的Web浏览器
  • PyQt实战——使用python提取JSON数据(十)
  • 树形查询转成TreeNode[],添加新节点
  • MongoDB 管理工具
  • C# 使用Newtonsoft.Json
  • 数据库的创建使用与查找
  • 【集合】——LinkedList
  • 机器算法之逻辑回归(Logistic Regression)详解
  • 【Leetcode 热题 100】208. 实现 Trie (前缀树)
  • LeetCode 876:链表的中间节点
  • 典型常见的基于知识蒸馏的目标检测方法总结三
  • Langchain Chat Model 和 Chat Prompt Template
  • 【Axios】如何在Vue中使用Axios请求拦截器
  • Flutter DragTarget拖拽控件详解
  • Effective C++ 条款30:透彻了解 inlining 的里里外外
  • vue 中 ref 详解