题目
现在市面上有很多扫地机器人,能够为我们分担家务,但是我们很难理解,有时候扫地机器人会重复清扫同一块地方。
- 假设现在有一款扫地机器人,不会重复扫过的地方,如果它要走四步,在走了第一步后,移动三步有如下9种路径;
- 第一步可以走4种路径,总共情况有 9*4=36 种路径。

思路: - 1.可以(0,0)来表示初始位置,每次可以有四个方向可以选择 上(1,0),下(-1,0),左(0,-1),右(0,1)
- 2.用一个集合保存所有已经走过的位置,过滤重复走的位置
实现
public class FloormoppingRobot {
private static int N = 12;
//移动方向的列表,对应上下左右
private static List<Position> step = new ArrayList<>(4);;
static {
step.add(new Position(0,1));
step.add(new Position(0,-1));
step.add(new Position(1,0));
step.add(new Position(-1,0));
}
private static int move(List<Position> historyPos){
//移动部署为N,则历史列表集合size为4时结束
if( historyPos.size() =

本文探讨了扫地机器人如何避免重复清扫同一区域的问题,通过定义初始位置和四个可能的方向,利用递归算法计算所有不重复路径的可能性。该算法确保机器人在行走过程中不会踏足已清洁过的地面,有效提高清扫效率。
最低0.47元/天 解锁文章
1007

被折叠的 条评论
为什么被折叠?



