我在编写循环时遇到问题,该循环检查2D数组的行是否都包含相同的元素。例如:
// This would be a "solved" case.
[[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5]]
// This would also be a "solved" case.
[[1, 1, 1, 1], [0, 0, 0, 0], [4, 4, 4, 4], [3, 3, 3, 3], [2, 2, 2, 2], [5, 5, 5, 5]]
// This would not be
[[0, 5, 0, 5], [1, 0, 1, 0], [2, 2, 2, 2], [3, 3, 3, 3], [1, 4, 1, 4], [5, 4, 5, 4]]
提前致谢。
答案 0 :(得分:0)
考虑:
public boolean checkArray(int[][] Array){
int outerCount, innerCount;
for(outerCount = 0; outerCount < Array.length; outerCount++)
for(innerCount = 1; innerCount < Array[outerCount].length; innerCount++)
if(Array[outerCount][0] != Array[outerCount][innerCount]){
return false;
}
}
}
return true;
}
通过使用第一个元素检查子数组中的每个元素,您可以确定数组是否符合您的条件。
所以在你未解决的情况下,数组首先会检查0 == 5,这当然不是真的,会返回false。在已解决的情况下,您的第一个元素将等于子数组中的每个其他元素,并且在检查后每个子数组都将返回true。
如果您需要任何澄清,请告诉我们!