提高Java代码的效率

时间:2015-11-18 06:50:40

标签: java

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

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");
}

基本上,我正在阅读一堆数字,并希望找到最大值。有关原始问题的更详细说明,请转至https://open.kattis.com/problems/armystrengthhard/
当前代码需要1秒才能完成运行,但我不确定哪个部分(读取输入或比较数字)需要更多时间。

1 个答案:

答案 0 :(得分:1)

我会使用CPU分析器来解决为什么花费这么多CPU,但是你的程序很可能花费大部分时间执行IO操作,即sc.nextInt()System.out.println

每个IO操作都比您正在进行的任何其他操作贵1到10K倍。