假设我们有一个带有坐标的字段,并且机器人从(0, 0)
开始,并且可以向上,向下,向左或向右移动,但不能对角移动。
对于任何给定位置(x, y)
,机器人可以移动到(x-1, y), (x+1, y), (x, y-1), (x, y+1)
,但不能移动到(x-1, y-1), (x+1, y+1), (x-1, y+1), (x+1, y-1)
。
此外,障碍物的放置方式是,其坐标数字加起来等于或大于21的任何位置,例如(45, -94)
是一个障碍,因为4 + 5 + 9 + 4 = 22 >= 21
,而(-112, 223)
并不是因为1 + 1 + 2 + 2 + 2 + 3 = 11 < 21
。
机器人无法跨入障碍物或穿过障碍物。它必须围绕它移动。
要确定机器人可以进行的位置数量,首先要考虑的是穷举搜索,首先要进行广度搜索。
-这是唯一的方法吗?
-有更快的方法吗?
-如何使用障碍物知识来解决它?
答案 0 :(得分:4)
如果x或y = +/- 399,则点是障碍物,因此障碍物点的矩形范围从(-399,-399)到(399,399)。
由于您无法到达该矩形之外的任何物体,因此可到达的点少于640000,并且简单的BFS可能是一个合理的解决方案。