LeetCode 1041. Robot Bounded In Circle (困于环中的机器人)
题目标签:Math
题目让我们判断机器人是否是一直在走一个圈。
当我们把 instructions 走完一遍时候:
1. 如果机器人回到了原点,那么它是在走一个圈。
2. 如果机器人的方向没有改变,那么它一直在朝一个方向走,就算重复instructions也不可能会走一个圈。
所以当机器人的方向改变的话,在重复instructions,它一定会走回原点,完成一个圈。
具体看code。
Java Solution:
Runtime: 0 ms, faster than 100 %
Memory Usage: 34 MB, less than 100 %
完成日期:07/31/2019
关键点:根据机器人方向改变来判断
class Solution { public boolean isRobotBounded(String instructions) { int x = 0, y = 0; // x, y location int i = 0; // robot's direction int d[][] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; // 4 directions for(int j = 0; j < instructions.length(); j++) { if(instructions.charAt(j) == 'R') i = (i + 1) % 4; else if(instructions.charAt(j) == 'L') i = (i + 3) % 4; else { // G: update x, y x += d[i][0]; y += d[i][1]; } } return (x == 0 && y == 0) || i > 0; // back to origin or facing not north } }
LeetCode 题目列表 - LeetCode Questions List
题目来源:https://leetcode.com/