这个题就是个坑,首先拓扑排序本身就很可能有不唯一答案,每次刷新找到入度为0的输出(入度为0的有多个的时候也没有规定先输出哪一个,一般是按顺序来的)。这里题目给的测试数据也很奇怪,还有重复的读入,读入顺序也有矛盾的地方,有的测试数据是优先找入读为0且出度也为0的输出,有的是在出度都不为0的时候,先找字母大的,也有先找字母小的,真是搞不懂。希望大家刷这个题适可而止,思路很简单的,不用死磕。
将64行改成 Queue<Node6> queue=new PriorityQueue<>(cmp);可以得到字典序最小的排列 //自定义比较器 static Comparator<Node6> cmp=new Comparator<Node6>() { @Override public int compare(Node6 o1, Node6 o2) { return o1.value-o2.value;//字典序小 //return o2.value-o1.value;//字典序大 } };
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:763 |
C语言训练-大、小写问题 (C语言代码)浏览:724 |
WU-格式化数据输出 (C++代码)浏览:1196 |
三角形 (C++代码)递推浏览:755 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:655 |
C语言训练-数字母 (C语言代码)浏览:601 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:521 |
1025题解浏览:734 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:404 |
Pascal三角 (C语言代码)浏览:645 |