牛客网:拓扑排序

Claude Code vs Codex Claude Code 提供了一个生产就绪(production-ready)的实现,包含良好的错误处理、优雅的关闭逻辑、详细注释和文档,以及内置测试。Claude Code 输出了一个可运行的 Next.js + TypeScript 前端,但错过了一些设计里的黄色主题元素;Codex 则生成自己的版本,没有导出设计中的图片,也没严格遵照设计主题。Codex 完成同样功能,但更简洁直接,文档和注释少一些但功能达标。任务都用同样的提示,使用 TypeScript 实现,并在一天内完成。 阅读详情

拓扑排序是一个数据结构,是一个有向图。

思路:首先我们要构造一个有向图,构造有向图的同时记录一下入度的长度。

                构造完图之后,使用深度优先遍历去执行出度,当边的长度为0 的时候,就可以出度了。

代码如下


/**
 * @author xnl
 * @Description:
 * @date: 2022/6/2   21:45
 */

import org.omg.PortableInterceptor.INACTIVE;

import java.util.*;

/**
 * @author xienl
 * @description
 * @date 2022/6/2
 */

public class Solution {

    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.topology());
    }

    StringBuffer sb = new StringBuffer();
    /**
     * 拓扑排序
     * @return
     */
    private String topology() {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        String[] split = str.split("\\s+");
        int n = Integer.parseInt(split[0]);
        int m = Integer.parseInt(split[1]);
        // 所有的点
        int[] inDegrees = new int[n];

        // 初始化边
        List<List<Integer>> edges = new ArrayList<>();
        for (int i = 0; i < n; i++){
            edges.add(new ArrayList<>());
        }

        for (int i = 0; i < m; i++){
            String[] temp = scanner.nextLine().split("\\s+");
            int left = Integer.parseInt(temp[0]);
            int right = Integer.parseInt(temp[1]);
            // z左边的边的下一个点加到左边点的图中
            edges.get(left - 1).add(right - 1);
            // 边加一
            inDegrees[right - 1]++;
        }
        return bfs(edges, inDegrees) ? sb.toString().substring(0, sb.length() - 1) : "-1";
    }

    private boolean bfs(List<List<Integer>> edges, int[] inDegrees){
        int num = 0;
        Deque<Integer> deque = new LinkedList<>();
        // 找出所有没有边的点
        for (int i = 0; i < inDegrees.length; i++){
            if (inDegrees[i] == 0){
                deque.offer(i);
            }
        }

        while (!deque.isEmpty()){
            Integer poll = deque.poll();
            sb.append((poll + 1) + " ");
            for (int i = 0; i < edges.get(poll).size(); i++){
                Integer temp = edges.get(poll).get(i);
                // 边减一
                inDegrees[temp]--;
                if (inDegrees[temp] == 0){
                    deque.offer(temp);
                }
            }
            num++;
        }
        return num == inDegrees.length;
    }
}

NEU-DET 冷轧钢缺陷检测:基于 YOLOv8 的目标检测与可视化 UI 实现 冷轧钢的生产过程中,由于设备故障、工艺问题或者人为因素,钢板表面可能会出现多种缺陷,如划痕、裂纹、孔洞等,这些缺陷会严重影响钢材的质量。它比之前的版本(如 YOLOv5、YOLOv4)在速度和精度上都有显著提升,并且对硬件要求较低,适合进行工业界面和嵌入式系统的应用。这些版本相较于更大型的模型(如 YOLOv8x)具有更快的推理速度和较低的资源占用,适合工业生产线中的实时应用。通过将训练好的模型部署到工业生产线摄像头中,我们可以实现实时的缺陷检测,极大地提升生产效率和产品质量。 阅读详情

相关推荐

玄机-Linux权限维持-后门

玄机-Linux权限维持-后门

m0_46439803的博客 764

牛客网 subsequence 2 【拓扑排序】

有一个长度为n的隐藏字符串由前m个小写英文字母组成。对于任何两个不同的英文字母,我们将通过从隐藏字符串中删除所有其他字母来告诉您隐藏字符串的子序列。例如,如果隐藏的字符串是“apple”并且所选字母是“e”和“p”,则得到的子序列将是“ppe”;如果所选字母是'a'和'x',则得到的子序列将是“a”。现在,请恢复隐藏的字符串。如果没有可能的隐藏字符串,则输出-1。如果有多个可能的隐藏字符串,则输出...

独钓门前月 462

深入解析BlueZ5与D-Bus:Linux蓝牙开发实战指南

本文深入解析BlueZ5与D-Bus在Linux蓝牙开发中的核心应用,提供从环境搭建到实战开发的完整指南。通过详细代码示例和调试技巧,帮助开发者掌握蓝牙协议栈与D-Bus接口的交互方法,实现高效蓝牙设备管理与GATT服务开发。

weixin_28292761的博客 450

#牛客网 拓扑排序 HNOI2015 菜肴制作

看题目第一眼以为是字典序,敲完发现并不是 QAQ, 正确写法应该是反着存,字典序按从大到小排就OK了,一般拓扑排序的题如果不是正常排的话可以尝试一下把图反过来画,这也是一种思路。 下面是链式前向星的AC代码: #include<bits/stdc++.h> using namespace std; const int maxn = 1e5 + 5; struct node { ...

OlaMins 300

通用定时器脉冲计数实验(STM32CubeMx配置)

通用定时器脉冲计数实验

a1169511636的博客 5509

用《Flappy Bird》游戏带你搞懂强化学习:从Q-learning到DQN的保姆级实战

本文通过《Flappy Bird》游戏实战,详细讲解了从Q-learning到DQN的强化学习技术。从环境搭建、Q表格构建到深度Q网络(DQN)的实现,逐步展示如何训练AI自主玩游戏。文章包含代码示例、训练技巧和性能优化方法,帮助读者深入理解强化学习的核心概念和应用。

weixin_42526415的博客 347

拓扑排序2牛客网题目

拓扑

tanghuan0827的博客 1166

第4章 Stata参数检验

目录 4.1单一样本T检验 案例延伸 4.2独立样本T检验 案例延伸 1.改变置信水平 2.在异方差假定条件下进行假设检验 4.3配对样本T检验 案例延伸 1.改变置信水平 4.4单一样本方差的假设检验 案例延伸 4.5双样本方差的假设检验 参数检验(Parameter Test)是指对参数的平均值、方差、比率等特征进行的统计检验。参数检验一般假设统计总体的具体分布为已知,但是其中一些参数或者取值范围不确定,分析的主要目的是估计这些未知参数的取值,或者对这些参数进...

qq_45112156的博客 1万+

牛客练习赛11 B-假的字符串(字典树+拓扑排序找环)

题目链接:点击打开链接 解析: 先把字符串全部插入到字典树中,这里要用数组表示的字典树,不然会MLE 1.如果存在字符串A是字符串B的前缀,那么字符串B肯定不可能是最小的情况 2.否则的话,我们判断一个字符串是不是可能最小,我们只要使该字符串的字母是同阶下最小的就行了。譬如说mcfc  mcfx mcfm mm xx 要使mcfc最小,那么首先他的第一个字母是要在所有第一个字母中最

咸鱼有梦想 320

别再手动折腾了!PICO Unity SDK 一键配置开发环境保姆级教程(含PDC串流调试)

本文详细介绍了PICO Unity SDK的一键配置功能,帮助开发者快速搭建VR开发环境。通过自动化配置流程,大幅减少手动设置时间,提升开发效率。文章还涵盖了PDC串流调试技巧和常见问题解决方案,是PICO VR开发的实用指南。

weixin_30335575的博客 450

正点原子stm32f103RChal库制作数字秒表:如用keil5和正点原子STM32F1开发板实现?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!    📌 特别说明: 文中部分技术问题来源于真实生产环境及网络公开案例,均经过精挑细选与系统化整理,并结合多位一线资深架构师和工程师多年实战经验沉淀,提

**My Coding Family** 1264

处女座的比赛资格(拓扑排序求最短路)

【题解】 显然这是个有向无环图的单源最短路问题,由于存在负权边,Dijkstra算法显然不适用,特殊 DAG 的性质使得 SPFA 算法无法在规定的时间限内求解出答案,Bellman-Ford算法显然不符合时间复杂度。(求最短路径的四种方法(Dijkstra,Floyd,Bellman-Ford,SPFA算法)) 2≤n≤10^5,这显然是一个稀疏图,我们可以根据跑出来的拓扑排序求出最短路。 ...

菜鸡成长史 375

Windows 镜像包大全(附百度云下载链接)

插入U盘,找到下载好的两个驱动软件,并安装,先打开驱动人生万能网卡版,安装好网卡驱动,可以接入wifi或者网线了,然后打开驱动精灵,按照提示,安装所有的驱动(中间要是让你重启,就先选择稍后再说,如果有的驱动安装好之后非要你重启,关不掉的那种,那你就重启吧),等全部安装好了,重启电脑。如果你有显卡,这里以英伟达举例,我是GTX960的,当你的驱动都安装好后,右键桌面,会出现一个英伟达控制面板。安装软碟通,下载之后,一直下一步就ok,啥也不用配置,到了最后一项点击“继续试用”即可。(下载里面的网卡版即可),

悦分享 7354

牛客 - 拓扑排序 - [USACO 2009 Dec G]Dizzy Cows

链接:https://ac.nowcoder.com/acm/problem/24868来源:牛客网。

Hahahaha5346的博客 1697

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

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

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

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

【算法入门&图论】【模板】拓扑排序|【模板】单源最短路2 |最小生成树

本专栏收录的均为牛客网的算法题目,内含链表、双指针、递归、动态规划、基本数据结构等算法思想的具体运用。牛客网不仅有大量的经典算法题目,也有大厂的面试真题,面试、找工作完全可以来这里找机会。此外,网站内的编码主题多样化,调试功能可运用性强,可谓是非常注重用户体验。这么好的免费刷题网站还不快入手吗,快去注册开启算法百炼成神之路吧!

叶落秋白的博客 3641

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【算法入门&amp;图论】【模板】拓扑排序 【模板】单源最短路2 最小生成树_ab15 【模板(1)

本专栏收录的均为牛客网的算法题目,内含链表、双指针、递归、动态规划、基本数据结构等算法思想的具体运用。牛客网不仅有大量的经典算法题目,也有大厂的面试真题,面试、找工作完全可以来这里找机会。此外,网站内的编码主题多样化,调试功能可运用性强,可谓是非常注重用户体验。这么好的免费刷题网站还不快入手吗,快去注册开启算法百炼成神之路吧!

2401_84182578的博客 1186

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

牛客 - 拓扑排序 - [USACO 2010 Nov S]Chocolate Milk

链接:https://ac.nowcoder.com/acm/problem/24747来源:牛客网。

Hahahaha5346的博客 654

牛客 - 图论 - 拓扑排序+记忆化搜索

链接:https://ac.nowcoder.com/acm/problem/20000来源:牛客网。

Hahahaha5346的博客 120

2021牛客多校2 K

2021牛客多校2 K 题目链接 思路: 构建拓扑关系,对每个数字建边,a -> b 表示 a 的前一个数字是 b ,建完边后跑一次拓扑排序即可。 代码: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<iostream> #include<cstring> #include<algorithm> #include<map> #include<vector> #

weixin_53177273的博客 147

【算法手记13】分组 && 拓扑排序

包含两道题目: 分组 && AB13 【模板】拓扑排序 的解题思路和完整解题代码

C/C++领域,数据结构,linux,MySQl学习者 894

拓扑排序【模板】

来源:牛客网。

优快云2151530018的博客 843

【牛客网-公司真题-前端入门篇】——奇安信秋招笔试-前端-卷1

秋招正式批已经到来,相信不少小伙伴在为找工作而烦恼,对自己的实力不太自信,感觉好难找工作,不用怕,下面我来给各位推荐一个知名刷题网站《牛客》

xiaolu567的博客 5378

刷题训练之 BFS 解决拓扑排序

最早博主续写了牛客网130道题,这块的刷题是让同学们快速进入C语言,而我们学习c++已经有一段时间了,知识储备已经足够了但缺少了实战,面对这块短板博主续写刷题训练,针对性学习,把相似的题目归类,系统的刷题,而我们刷题的官网可以参考:​​​​​​力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网⭐知识讲解。

AAlykk的博客 1311

2019牛客暑期多校训练营(第五场)H.subsequence 2(拓扑排序)

链接:https://ac.nowcoder.com/acm/contest/885/H 来源:牛客网 题目描述 There is a hidden string of length n composed of the first m lowercase English letters. For any two different English letters, we will tell...

红点雷龙XL 580

并查集&拓扑排序&一些总结

这个周做了并查集和拓扑排序的例题,其实对于现在的题来说,主要还是普及和提高-的题可以自己思考做,对于提高+来说,题目明显会变难,上周主要是看相关的资料,看资料的时候根据作者的引导和解释,题目看起来会比较容易,当真正做题的时候,就会发现还是很不容易的,比如某些细节不注意,就会耽误老长时间,而且不容易发现错误在哪。就像例题中有个可以找多少对情侣的呢个题,我从最开始的第一个数据对的十分,到1、5、9数据对了的30分,再到1、4、7数据对了的30分,搞得我很是崩溃,裂开了。。。其实还有好多类似的地方,当你完成一个代

weixin_62946566的博客 175

拓扑排序之java实现_有向图和拓扑排序Java实现

package practice; import java.util.ArrayDeque; import java.util.Iterator; import java.util.Stack; public class TestMain { public static void main(String[] args) { Digraph a = new Digraph(13); a.addEdg...

weixin_39700397的博客 822
上一篇: 牛客网:AB12 删除链表的节点
下一篇: 力扣:450. 删除二叉搜索树中的节点
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值