地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於k的格仔。 例如,當k為18時,機械人能夠進入方格(35,37),因為3+5+3+7 = 18。但是,它不能進入方格(35,38),因為3+5+3+8 = 19。請問該機械人能夠達到多少個格仔?
題意:在m x n 的矩陣中, 在限制條件 n 的情況下能到達哪些點,且記住這些點是聯通的!(也就是可以連續到達的),因為需要時聯通的,所以用dfs直接尋找,
兩個輔助陣列 vis && iswall 前者記錄這個地方是否到達過,後者記錄這個地方是否合法!
直接從(0,0)開始dfs就可以了,終止dfs的條件就是 1、越界 2、vis == true 3、iswall==true
public class solution
this.rows=row;
this.cols=col;
this.vis=new boolean[row][col];
this.iswall=new boolean[row][col];
for (int i = 0; i threshold)else }}
dfs(0,0);
return cango;
}private void dfs(int i, int j)
"--------");
//visited
vis[i][j]=true;
cango++;
//dfs
dfs(i+1,j);
dfs(i-1,j);
dfs(i,j+1);
dfs(i,j-1);
}private boolean outbound(int rows,int row, int cols,int col)
return false;
}}
劍指offer 機械人運動範圍
題目 地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但是,它不能進入方格 35,38 因為3 5 3 8 1...
劍指offer 機械人的運動範圍
地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但是,它不能進入方格 35,38 因為3 5 3 8 19。請...
劍指offer 機械人的運動範圍
題目描述 地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但是,它不能進入方格 35,38 因為3 5 3 8...