提高Java代码的效率

提高Java代码的效率,java,Java,我想知道是否有办法提高以下代码的效率。(或者有更好的算法吗? Scanner sc=新扫描仪(System.in); int t=sc.nextInt(); for(int i=0;i=maxN?“哥斯拉”:“MechaGodzilla”); } 基本上,我在读一堆数字,想找出最大值。有关原始问题的详细解释,请转到 当前代码需要1秒以上的时间才能完成运行,但我不确定哪部分(读取输入或比较数字)需要更多的时间。我会使用CPU探查器来找出它花费如此多CPU的原因,但是您的程序很可能会花费大部分时间

我想知道是否有办法提高以下代码的效率。(或者有更好的算法吗?

Scanner sc=新扫描仪(System.in);
int t=sc.nextInt();
for(int i=0;i最大值){
maxM=新怪物;
}
}
对于(int j=0;j最大值){
maxN=新怪物;
}
}
System.out.println(maxM>=maxN?“哥斯拉”:“MechaGodzilla”);
}
基本上,我在读一堆数字,想找出最大值。有关原始问题的详细解释,请转到


当前代码需要1秒以上的时间才能完成运行,但我不确定哪部分(读取输入或比较数字)需要更多的时间。

我会使用CPU探查器来找出它花费如此多CPU的原因,但是您的程序很可能会花费大部分时间执行IO操作,即
sc.nextInt()
系统输出.println


每个IO操作的成本是您正在执行的任何其他操作的1K到10K倍。

使用什么输入需要1s才能完成?你链接的小样本还是大样本?要了解比较数字是否真的会影响性能,只需从2个循环中删除2个ifs,看看它是否会改变处理时间。抱歉,我不知道输入。我只是把这个提交给了在线法官。前两个测试用例非常小,所以我通过了它们。但我在第三次考试中失败了。因此,删除if语句不会测试性能,因为它不会通过前两个小测试用例。读取链接时,可以读取50*2*100000=1000万个整数。您可以使用相同的变量,而不是分配1000万整数。谢谢。那么你将如何改进它呢?
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int i = 0; i < t; i++){
  int m = sc.nextInt(), n = sc.nextInt(), maxM = 0, maxN = 0;
  for (int j = 0; j < m; j++){
    int newMonster = sc.nextInt();
    if (newMonster > maxM){
      maxM = newMonster;
    }
  }
  for (int j = 0; j < n; j++){
    int newMonster = sc.nextInt();
    if (newMonster > maxN){
      maxN = newMonster;
    }
  }
  System.out.println(maxM >= maxN? "Godzilla": "MechaGodzilla");
}