想要遍历一个测试用例 输入格式输入的第一行包括测试用例的数量T。
每个测试用例的第一行包括恶棍和玩家N。
每个测试用例的第二行包括N个以空格分隔的反派力量。
每个测试用例的第三行包括N个分隔玩家的能量。
4
6
112 243 512 343 90 478
500 789 234 400 452 150
6
10 20 50 100 500 400
30 20 60 70 90 490
5
10 20 30 40 50
40 50 60 70 80
7
10 20 50 100 500 400 58
30 20 60 70 90 49 79
在这里,我想将球员和恶棍作为单独的数组发送给函数,这是我的代码,但是当测试用例的大小大于3时,我在for循环的内部获取了超出范围的异常索引>
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
List < Integer > values = new ArrayList < > ();
List < Integer > temp = new ArrayList < > ();
List < Integer > villain = new ArrayList < > ();
List < Integer > player = new ArrayList < > ();
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
while (scanner.hasNext()) {
values.add(Integer.valueOf(scanner.next()));
}
scanner.close();
int q = 0;
for (int i = 1; i <= n; i++) {
for (int counter = q + 1; counter <= ((values.get(q) * 2) + q);
counter++)
{
if(counter < values.size())
temp.add(values.get(counter));
if (counter == ((values.get(q) * 2) + q)) {
for (int j = 0; j < temp.size(); j++) {
if (j < temp.size() / 2)
villain.add(temp.get(j));
else
player.add(temp.get(j));
}
String endresult = empire(villain, player);
System.out.println(endresult);
villain.clear();
player.clear();
}
}
temp.clear();
q = (2 * values.get(q)) + 1;
}
}
}
答案 0 :(得分:0)
在主循环主体的末尾,您没有正确移动 value -定位变量 q ,它需要增加而不是赋值:
struct vect32 {
vect32() : vect(32) {}
vector<int> vect;
};
array<vect32, 10> sequences;
sequences[0].vect.push_back(1);