题目
类型:Geometry
解题思路
枚举各种移动方案来归纳路径交叉的规律。
根据归纳结果,发现所有可能的路径交叉的情况只有以下三类:
1、
2、
3、
https://leetcode-cn.com/problems/self-crossing/solution/lu-jing-jiao-cha-by-leetcode-solution-dekx/
代码
class Solution {
public boolean isSelfCrossing(int[] distance) {
int n = distance.length;
for (int i = 3; i < n; ++i) {
// 第 1 类路径交叉的情况
if (distance[i] >= distance[i - 2] && distance[i - 1] <= distance[i - 3]) {
return true;
}
// 第 2 类路径交叉的情况
if (i == 4 && (distance[3] == distance[1]
&& distance[4] >= distance[2] - distance[0])) {
return true;
}
// 第 3 类路径交叉的情况
if (i >= 5 && (distance[i - 3] - distance[i - 5] <= distance[i - 1]
&& distance[i - 1] <= distance[i - 3]
&& distance[i] >= distance[i - 2] - distance[i - 4]
&& distance[i - 2] > distance[i - 4])) {
return true;
}
}
return false;
}
}