機械人的運動範圍

2022-09-10 16:57:18 字數 1997 閱讀 9761

牛客網

地上有乙個 rows 行和 cols 列的方格。座標從 [0,0] 到 [rows-1,cols-1] 。乙個機械人從座標 [0,0] 的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於 threshold 的格仔。 例如,當 threshold 為 18 時,機械人能夠進入方格 [35,37] ,因為 3+5+3+7 = 18。但是,它不能進入方格 [35,38] ,因為 3+5+3+8 = 19 。請問該機械人能夠達到多少個格仔?

資料範圍:

,高階:空間複雜度

,時間複雜度

例項1

輸入:1,2,3

返回值:

例項2輸入:

10,1,100

返回值:

說明:

[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[0,6],[0,7],[0,8],[0,9],[0,10],[0,11],[0,12],[0,13],[0,14],[0,15],[0,16],[0,17],[0,18],[0,19],[0,20],[0,21],[0,22],[0,23],[0,24],[0,25],[0,26],[0,27],[0,28] 這29種,後面的[0,29],[0,30]以及[0,31]等等是無法到達的

題中說了,機械人是可以沿著上下左右四個方向走的。但你想一下,任何乙個格仔你從任何乙個方向進來,那麼他只能往其他3個方向走,因為如果在往回走就重複了。但實際上我們只要沿著兩個方向走就可以了,乙個是右邊,乙個是下邊

package com.huang.algorithms;

import j**a.util.linkedlist;

import j**a.util.queue;

/** * @author hxc

* @date 2022/1/10

* 機械人運動範圍

*/public class robotmotion

/*** 地上有乙個 rows 行和 cols 列的方格。座標從 [0,0] 到 [rows-1,cols-1] 。

* 乙個機械人從座標 [0,0] 的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,

* 但是不能進入行座標和列座標的數字之和大於 threshold 的格仔。

* 例如,當 threshold 為 18 時,機械人能夠進入方格 [35,37] ,因為 3+5+3+7 = 18。

* 但是,它不能進入方格 [35,38] ,因為 3+5+3+8 = 19 。請問該機械人能夠達到多少個格仔?

** @param threshold

* @param rows

* @param cols

* @return

*/public static int movingcount(int threshold, int rows, int cols)

//深度優先

private static int dfs(int i, int j, int rows, int cols, int threshold, boolean flag)

flag[i][j] = true;

//向下或者向右查詢

return 1 + dfs(i + 1, j, rows, cols, threshold, flag) + dfs(i, j + 1, rows, cols, threshold, flag);

}//算座標索引的和

private static int sum(int i, int j)

while (j != 0)

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...