機械人的運動範圍

2021-10-07 01:30:37 字數 948 閱讀 2450

leetcode

牛客題目描述:地上有乙個m行n列的方格,從座標 [0,0] 到座標 [m-1,n-1] 。乙個機械人從座標 [0, 0] 的格仔開始移動,它每次可以向左、右、上、下移動一格(不能移動到方格外),也不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 [35, 37] ,因為3+5+3+7=18。但它不能進入方格 [35, 38],因為3+5+3+8=19。請問該機械人能夠到達多少個格仔?

測試用例:

輸入:m = 2, n = 3, k = 1

輸出:3

輸入:m = 3, n = 1, k = 0

輸出:1

分析:

解題思路:回溯法

機械人從座標(0,0)開始移動,當他準備進入座標為(i,j)的格仔時,檢查座標的數字之和判斷機械人是否能夠進入。如果機械人能夠進入座標為(i,j)的格仔,則再判斷它能否進入4個相鄰的格仔(i,j-1)、(i,j+1)、(i,j+1)和(i+1,j)。

**:

class

solution

void

test

(vectorint>>

&vec,

int m,

int n,

int k,

int i,

int j,

int&count)

if(vec[i]

[j]==0&&

((getsumofnum

(i)+

getsumofnum

(j))

<=k))}

intgetsumofnum

(int num)

return sum;}}

;

機械人運動範圍

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