题目

类型:Geometry
image.png

解题思路

枚举各种移动方案来归纳路径交叉的规律。
根据归纳结果,发现所有可能的路径交叉的情况只有以下三类:
1、
image.png
2、
image.png
3、
image.png
https://leetcode-cn.com/problems/self-crossing/solution/lu-jing-jiao-cha-by-leetcode-solution-dekx/

代码

  1. class Solution {
  2. public boolean isSelfCrossing(int[] distance) {
  3. int n = distance.length;
  4. for (int i = 3; i < n; ++i) {
  5. // 第 1 类路径交叉的情况
  6. if (distance[i] >= distance[i - 2] && distance[i - 1] <= distance[i - 3]) {
  7. return true;
  8. }
  9. // 第 2 类路径交叉的情况
  10. if (i == 4 && (distance[3] == distance[1]
  11. && distance[4] >= distance[2] - distance[0])) {
  12. return true;
  13. }
  14. // 第 3 类路径交叉的情况
  15. if (i >= 5 && (distance[i - 3] - distance[i - 5] <= distance[i - 1]
  16. && distance[i - 1] <= distance[i - 3]
  17. && distance[i] >= distance[i - 2] - distance[i - 4]
  18. && distance[i - 2] > distance[i - 4])) {
  19. return true;
  20. }
  21. }
  22. return false;
  23. }
  24. }