我正在尝试扫描2d数组的每一行(100x100大小),并确保每行(以及后面的列)只有1个实例,每个整数1到100.在下面的代码中我试图制作确保每一行只有一个实例,每个整数1到100,但显然语法不起作用。是否有任何方法可以推动这一切或我缺少什么?
感谢您的帮助
for(int i = 0; i<100; i++) {
for (int j=0; j<100 ; j++) {
if(2dARR.get(i).get(j).contains(1) && 2dArr.get(i).get(j).contains(2)(.....)) {
System.out.println("FK");
}
}
}
答案 0 :(得分:0)
for(int i = 0; i<100; i++) {
Set<Integer> numbersInRow = new HashSet<Integer>();
for (int j=0; j<100 ; j++) {
int num = 2dARR.get(i).get(j);
if (num < 1 || num > 100) {
// out of bounds, handle error
}
else {
numbersInRow.add(num);
}
}
// At this point we have the set of numbers found in the row, all guaranteed to be >=1 and <= 100
if (numbersInRow.size() != 100) {
// at least one number appeared more than once
}
}
答案 1 :(得分:0)
将其转储到Set中,检查Array和Set的大小是否相等。如果不是,那就有重复。如果超过该测试,则在数组中运行循环并检查所有值是否大于0且小于101(1-100)。