劍指Offer 機械人的運動範圍

2021-09-25 09:37:42 字數 1035 閱讀 3960

地上有乙個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...