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;
}