我正在解决Kattis问题。我不确定如何获取第二组输入数据以进行识别和处理。有人可以提供帮助吗?
以下是详细信息:
说明:
输入:
输入的第一行给出了测试用例的数量。 每个测试用例有两行。第一个给出 商店,第二个给出他们在Long上的整数位置 街。
输出:
对于每个测试用例,输出一行 最佳的停车距离,步行距离最小。
示例输入和输出:
输入
2
4
24
13
89
37
6
7 30 41 14 39 42
输出:
152
70
因此,基本上,您正在将最大/最小int之差加倍。我已经获得了第一组数据(24、13、89、37)来计算152,但是我的程序忽略了第二组数据(7、30、41、14、39、42)。这是代码:
public static void main(String[] args) {
//create scanner for input
Scanner in = new Scanner (System.in);
//create variables for first two input lines
int cases = in.nextInt();
int numOfStores = in.nextInt();
//initialize array
int numArray [] = new int[numOfStores];
//assign values to array
for (int i = 0; i < numArray.length; i++){
numArray[i] = in.nextInt();}
//sort array
Arrays.sort(numArray);
//set min value to first index position of array
int min = numArray[0];
//set max value to last index position of array
int max = numArray[numArray.length - 1];
//print out the difference of max and min multiplied by 2 for distance to and from
System.out.println((max - min) * 2);
答案 0 :(得分:0)
您需要循环输入案例的次数。 因此,您可以使用for循环。
int cases = in.nextInt();
for(int c = 0; c < cases; c++){
//rest of the code
}
答案 1 :(得分:0)
您需要在上面添加一个测试用例数量的循环。另外,您需要将结果推送到列表,以便最后可以在控制台上显示它们。
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
class Kattis {
public static void main(String[] args) {
// Create scanner for number of test cases.
System.out.println("Input");
Scanner in = new Scanner(System.in);
int numTestCases = in.nextInt();
ArrayList<Integer> out = new ArrayList<>();
for (int t = 0; t < numTestCases; ++t) {
int numOfStores = in.nextInt();
// initialize array
int numArray[] = new int[numOfStores];
// assign values to array
for (int i = 0; i < numArray.length; i++) {
numArray[i] = in.nextInt();
}
// sort array
Arrays.sort(numArray);
// set min value to first index position of array
int min = numArray[0];
// set max value to last index position of array
int max = numArray[numArray.length - 1];
// print out the difference of max and min multiplied by 2 for distance to and
out.add((max - min) * 2);
}
in.close();
System.out.println("Output");
for (Integer data : out) {
System.out.println(data);
}
}
}