题目描述[原题链接][https://www.acwing.com/problem/content/description/22/]
地上有一个m
行和n
列的方格,横纵坐标范围分别是 0∼m−1
和0∼n−1
。
一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格。
但是不能进入行坐标和列坐标的数位之和大于 kk 的格子。
请问该机器人能够达到多少个格子?
样例1
1 | 输入:k=7, m=4, n=5 |
样例2
1 | 输入:k=18, m=40, n=40 |
注意:
0<=m<=50
0<=n<=50
0<=k<=100
算法描述
简单的BFS
,当数据量太大的话DFS
可能会造成栈溢出的错误,所以这种题适合用BFS
去解决
明显的思路,就是从左上角开始一直扩展,以栈为载体,每次有四种扩张的方式,满足题目要求的数据就压入栈中,直至栈为空返回计数器ans
;
C++代码
1 | class Solution { |
Java代码
1 | class Solution { |