面試題13 機械人的運動範圍(中等題)

2021-10-03 15:46:50 字數 1245 閱讀 5522

題目描述:

地上有乙個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。請問該機械人能夠到達多少個格仔?

示例 1:

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

輸出:3

示例 1:

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

輸出:1

1 <= n,m <= 100

0 <= k <= 20

class

solution

;int

dy =

;boolean

mark =

newboolean

[m][n]

; mark[0]

[0]=

true

; queue<

int[

]> que =

newlinkedlist

<

>()

; que.

add(

newint

);while

(!que.

isempty()

));}

}}int count =0;

for(

int i =

0; i < m; i++)}

}return count;

}private

boolean

isover

(int i,

int j,

int k)

while

(j >0)

return res > k;

}}

思路概述:

定義乙個boolen陣列,來記錄機械人是否到達過該點,然後判斷能到達的點位的上下左右四個位置是否可以達到。

注意:

不能單純的通過遍歷乙個行為n、列為m的二維陣列,通過計算數字來判斷是否可以到達,因為有的數字滿足要求,但是機械人並無法到達該點,因為前往該點的路上的點位無法到達。

面試題13 機械人的運動範圍

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

面試題13 機械人的運動範圍

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

面試題13 機械人的運動範圍

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