LeetCode每日一题,657. RobotReturnToOrgin
先看题目描述
大意就是 moves 代表机器人如何移动,L 代表左移,R 代表右移,U 代表上移,D 代表下移,每次移动的步伐一致,问最后能否回到原点
算法和思路
这题很简单,直接模拟机器人移动就行,x 和 y 代表机器人的坐标,L 就 x - 1,R 就 x + 1,U 就 y + 1,D 就 y - 1,最后看 x 和 y 是否都等于 0 就可以
算法源码
1 | class Solution { |
后来去看时间击败 100% 的代码,发现思路基本一致,就是别人是计算 L 的出现次数是否等于 R 的出现次数,U 的出现次数是否等于 D 的出现次数,然后实现的代码更加巧妙一点,节省了运算时间。代码中使用了 letters[‘A’ + 26],其实这里面就是 java 会自动把 A 换成其 ASII 码,letters[‘A’ + 26] 其实就是创建了一个长度为 91 的数组,letters[‘Z’] 其实就是 letters[90]
1 | class Solution { |