1
我有一個布爾二維數組。我試圖找到一個算法來遍歷這個數組,並創建一個新的int數組,它打印出每個單元格中最接近的真值。 因此,如果我們有一個布爾值,像查找2D陣列中最接近的非零單元格
0 1 0
0 0 0
0 0 1
然後,我的int數組會,
1 0 1
1 1 1
2 1 0
我試圖遍歷數組,並使用此功能,
private static int checkClosest(boolean[][] check, int row, int col){
int dist =0;
int rowDist = 0;
int colDist = 0;
int diagDist = 0;
for(int i=row; i< check.length;i++){
if(check[i][col]){
rowDist = (i-row);
break;
}
}
for(int i= col; i<check[row].length; i++){
if(check[row][i]){
colDist = (i - col);
break;
}
}
int count=0;
for(int i= row, j= col; i < check[i].length; i++){
if(check[i][j]){
diagDist = count;
break;
}
count++;
j++;
}
dist = Math.max(rowDist, colDist);
return Math.max(dist, diagDist);
}
但是這並未沒有工作。有人可以幫助我做到這一點的最佳方式。
你能否詳細闡述一下你的問題@Zeus? –
請參閱提供的示例。這應該清楚地解釋這個問題。 – Zeus
抱歉,我知道了這個時間其實..但你的雙維數組應該是固定的或可能會發生變化? @Zeus –