https://www.codechef.com/problems/TSORT/ - 这是要解决的问题
https://www.codechef.com/viewsolution/9110492 - 我的Java解决方案(实施比较排序)
https://www.codechef.com/viewsolution/8599514 - Java中的其他一些人解决方案(他也实施了比较排序)
当我提交我的解决方案时,我得到TLE(超出时间限制),但另一个解决方案获得AC。
造成这种差异的可能原因是什么?
注意:如果解决方案不同,请告诉我代码中的差异和改进方面。
答案 0 :(得分:1)
有一点需要注意的是(自己的实现)FastScanner
类在"其他"中的使用。解。只是从System.in中读取数据而不是等待(就像你的代码那样!)以获得System.in中给出的完整行。
我猜你的解决方案正在等待你的BufferedReader
继续行结束 - 但是考虑到测试输入它永远不会。
通过调用BufferedReader.readLine(),您将阻止
a)读取EOF(除非有意,否则不会发生StdIn)或
b)已读取一行(包括该平台的有效行分隔符char)。
您的竞争对手只是从System.in
读取了一个大byte[]
- 与当时可用的信息一样多。因此可以假设System.in
中只有 没有换行符,因此您的代码会被卡住。
赋值中的输入特别显示最后一个int后没有换行符。因此,您可能正在等待更多输入。