如何删除在线法官在几个Java程序中指出的运行时错误



当我向Spoj和Codechef等在线法官提交解决方案时,我会反复获得NZEC。我注意到包含超过1个功能和类的程序中的这种行为。

有人可以建议我出错的地方吗?

问题:https://www.codechef.com/problems/firesc/

我的答案:https://www.codechef.com/viewsolution/16564688

请更改程序并尝试!

任何帮助都将不胜感激!

在"约束"下,它说:

1≤n≤100000(10^5)
0≤m≤100000(10^5)

,您的代码具有此行:

f.adj=new int[f.n][f.n];

但是,如果N是100000,则您正在尝试使用亿美元的阵列创建一个阵列。当我尝试使用时,我在尝试创建数组时会得到一个Outofmemoryerror。

您将不得不更改计算答案的方式,以便不使用这种潜在的大数组。

如果n相对较大,则f.adj=new int[f.n][f.n];初始化可能导致错误。[0,100000]和[1,100000]的n和m元素,最坏的情况将看到超过37 GB的情况。

另外,例如,错误在未能检查输入是否有效时发生错误。如果输入不是整数,则t=sc.nextInt();会抛出InputMismatchException。对程序的执行方式不了解,而实际错误本身使其对诊断感到乏味。

作为旁注,具有有用名称的命名变量是自动文档的好方法

最新更新