用递归方法计算邻近的单元的数目
来源:百度知道 编辑:UC知道 时间:2024/09/25 14:36:25
你有邮箱吗?我把我的实现给你,你做的和我已经做的不兼容。。。
//你没给格数据怎么表达了,我只能用接口表示你的网格了。
import java.util.Vector;
public interface Diagnosable{
boolean isBad();
}
public Class Diagnostor{
private Diagnosable[][] grids;
public Diagnostor(Diagnosable[][] grids){
this.grids=grids;
}
public Diagnosable[] findBadGrids(int row,int col){
Vector<Diagnosable>badGrids=new Vector<Diagnosable>();
boolean[][] visited=new boolean[grids.length][grids[0].length];
findBads(row,col,badGrids,visited);
return badGrids.toArray(new Diagnosable[0]);
}
private void findBads(int r,int c,Vector<Diagnosable>badGrids,boolean[][] visited){
visited[r][c]=true;
if(grids[r][c].isBad()){
badGrids.add(grids[r][c]);
int r1=r>0?r-1:r,c1=c>0?c-1:c,r2=r<grids.length-1?r+1:r,c2=c<grids[0].length-1?c+1:c;
for(r=r1;r<=r2;r++){