LeetCode(1041 困于环中的机器人)

如题
LeetCode(1041 困于环中的机器人)_第1张图片
最直观的思路那自然是,按照路径走判断是否可以回到原点即可,但是需要注意的是,一次回到原点不是所有路径,由于有4个方向,那么最多是需要4次回到原点。由此第一种方案

String str =instructions+instructions+instructions+instructions;
        int x=0;
        int y=0;
        int flag = 0;  //方向判断 0右 1下 2左 3上
		for(int i=0;i

结果LeetCode(1041 困于环中的机器人)_第2张图片
需要遍历4倍字符串,不够优雅,有没有只需要遍历一次的,自然是有。将上面的退出条件摊开,其实分为三种情况。第一种,一次回到原点的,不需要讨论。第二种,两次回到原点的,这种情形对应的是,一次没回到原点,但是最终结束的时候掉了个头。第三种,4次的则是对应结束时左右转弯的。没错,唯一不能形成环的就是一路向西了。

	public boolean isRobotBounded1(String instructions) {
		int x=0;
        int y=0;
        int flag = 0;  //方向判断 0右 1下 2左 3上
		for(int i=0;i

结果LeetCode(1041 困于环中的机器人)_第3张图片

你可能感兴趣的:(leetcode刷题java)