面对数组元素的问题。在下面的情况中,问题集如下:
实际上,上面的数组中有很多沙漏。沙漏看起来像这样:
1 1 1
1 1 1 0沙漏的总和是其中所有数字的总和。 上述沙漏的总和分别为7,4和2。
在这个问题中,你必须打印所有的最大总和 数组中的沙漏。
现在我的解决方案是循环遍历可能的所有数组位置(中间位置不在数组的外边界)。并总结了围绕该中心位置的沙漏位置。
这个错误令我感到困惑,尽管2,2在数组和界限范围内显然是明显的。对于“底行”上的数组元素,我收到错误“undefined”。
任何帮助都会非常感激。
function main() {
var arr = [];
var max = 0;
for(arr_i = 0; arr_i < 6; arr_i++){
arr[arr_i] = readLine().split(' ');
var len = arr[0].length -1;
if (arr_i !== 0 && arr_i !== len){
for (var j=0; j < len; j++){
if (j !== 0 && j !== len ){
console.log("this is i " + arr_i + "and the j " + j);
var currentMax = 0;
currentMax += parseInt(arr[arr_i -1][j-1]);
currentMax += parseInt(arr[arr_i -1][j]);
currentMax += parseInt(arr[arr_i -1][j+1]);
currentMax += parseInt(arr[arr_i][j]);
//currentMax += parseInt(arr[arr_i +1][j-1]);
//currentMax += parseInt(arr[arr_i +1][j]);
// currentMax += parseInt(arr[arr_i +1][j+1]);
console.log("dumb ", arr[2][2]);
console.log("currentMax ", currentMax);
max = Math.max(currentMax, max);
}
}
}
}
console.log(max);
}