【发布时间】:2020-10-17 19:33:54
【问题描述】:
我有一个二维矩阵A[row][col]。假设它仅包含布尔值。
我想遍历每个元素。对于每次迭代,它将扫描该元素的 8 个周围元素,并计算 True 值的数量。让我们忽略计数器进程。
// scanning element A[i][j]
counter = countHowManyTrue(A[i+1][j], A[i-1][j], A[i][j+1], A[i][j-1]... and so on)
除第一行、最后一行、第一列和最后一列外,其他每个元素都有 8 个周围元素。所以我必须写 if-else 语句来检查,像这样:
for (i = 0; i < m; i++){
for(j = 0; j < n; j++){
if(i == 0 && j == 0){ // first row, first col
// do sth
}
if(i == m && j == 0){
//do sth
}
}
}
而且我必须多次重复 if-else 语句来检查边缘情况,这非常耗时。
有没有更好的方法来做到这一点?
【问题讨论】: