import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(input.readLine());
for (int i = 0; i < t; i++) {
String[] arrayData = input.readLine().split(" ");
int[] cardsi = new int[arrayData.length];
int e = 0;
for(int a = 0; a < arrayData.length; a++){
cardsi[e] = Integer.parseInt(arrayData[a]);
e++;
}
int X = cardsi[0];
int N = cardsi[1];
long count = 0;
for (int j = 2; j < cardsi.length; j++) {
for (int l = 3; l <= (cardsi.length - 1); l++) {
if ((cardsi[j] + cardsi[l]) == X &&(j != l)) {
count++;
}
}
}
System.out.println((i + 1) + ". " + count);
}
}
}
提交时,出现LCPC12F问题时出现了超出时间限制错误。什么是解决方案?扫描仪是出现此类错误的主要麻烦吗?
答案 0 :(得分:0)
您曾经在IDE上运行过这些代码吗?
当我将数字提供给t
元素时,然后是arrayData
(在这种情况下,由于int
,我们应该输入String
类型而不是java.lang.NumberFormatException
),它表明Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
和int N = cardsi[1];
是我认为您代码中的主要问题。这是因为String[] arrayData = input.readLine().split(" ");
的大小为1,所以cardsi[1]
数组上没有int
元素