機械人的運動範圍詳解DFS策略

2021-10-25 06:51:37 字數 1169 閱讀 9401

不多bb,直接看**

public

class

robotmovingscopecount

}countwithdfs

(blockspassed,threshold,rows,cols,0,

0);//統計blockspassed中值為1的元素數目,即為符合要求的格仔數

int count =0;

for(

int i=

0;i} system.out.

println

(count);}

/* *dfs策略:

*dfs()

*/public

static

boolean

countwithdfs

(int

blockspassed,

int threshold,

int rows,

int cols,

int i,

int j)

if(blockspassed[i]

[j]==1)

if((sumofinteger

(i)+

sumofinteger

(j))

> threshold)

//格仔(i,j)滿足要求,將blockspassed[i][j]標記為1

blockspassed[i]

[j]=1;

//下一級遞迴

return

countwithdfs

(blockspassed,threshold,rows,cols,i+

1,j)

&&countwithdfs

(blockspassed,threshold,rows,cols,i-

1,j)

&&countwithdfs

(blockspassed,threshold,rows,cols,i,j+1)

&&countwithdfs

(blockspassed,threshold,rows,cols,i,j-1)

;}public

static

intsumofinteger

(int num)

}

以上均為個人見解,如有謬誤,歡迎指正!

機械人運動範圍

題目 地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但是,它不能進入方格 35,38 因為3 5 3 8 1...

機械人運動範圍

地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但是,它不能進入方格 35,38 因為3 5 3 8 19。請...

機械人的運動範圍

題目 地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但是,它不能進入方格 35,38 因為3 5 3 8 1...