跳到主要内容

335.路径交叉

链接:335.路径交叉
难度:Hard
标签:几何、数组、数学
简介:给你一个整数数组 distance 。判断你所经过的路径是否相交。如果相交,返回 true ;否则,返回 false 。

题解 1 - typescript

  • 编辑时间:2021-10-29
  • 执行用时:96ms
  • 内存消耗:41.7MB
  • 编程语言:typescript
  • 解法介绍:[参考链接](https://leetcode-cn.com/problems/self-crossing/solution/gong-shui-san-xie-fen-qing-kuang-tao-lun-zdrb/)。
function isSelfCrossing(distance: number[]): boolean {
const n = distance.length;
if (n <= 3) return false;
for (let i = 3; i < n; i++) {
if (i >= 3 && distance[i] >= distance[i - 2] && distance[i - 1] <= distance[i - 3]) return true;
if (
i >= 4 &&
distance[i - 1] === distance[i - 3] &&
distance[i] + distance[i - 4] >= distance[i - 2]
)
return true;
if (
i >= 5 &&
distance[i - 1] <= distance[i - 3] &&
distance[i - 2] > distance[i - 4] &&
distance[i] + distance[i - 4] >= distance[i - 2] &&
distance[i - 1] + distance[i - 5] >= distance[i - 3]
)
return true;
}
return false;
}