分析:
- 我们首先需要知道镜面反射的一些小技巧,如下图,也就是我们可以作延长线来判断反射之后的线将会落于何处。
- 题目既然保证一定会碰到012中的某一个点,那么我只要疯狂做延长线,总会交于某个角
- 再来举个例子,如下图,p = 4,q = 3,最后落于点2处,图中虚线和实线根据标号一一对应,且保证了两线方向一致
- 延长线每次交于边界点记作A,B,C,…,显然若A的横坐标为x,则B的横坐标为2x,C的横坐标为3x,依次类推,我们只需要找到某个点其横坐标恰好是p的倍数即可
思路:
- 显然若横坐标是x的偶数倍,说明相交点在下边界线,也就是0处!返回0即可
- 若横坐标是x的奇数倍,说明相交点在上边界线,或许是2,或许是1
- 那么显然,此时若横坐标是p的偶数倍,如示例1和示例2,最后会落于2处!
- else: 落于1处!
1 | class Solution(object): |