1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| // @Title: 路径交叉 (Self Crossing)
// @Author: 15816537946@163.com
// @Date: 2021-10-29 16:41:11
// @Runtime: 16 ms
// @Memory: 7 MB
func isSelfCrossing(distance []int) bool {
distance = append([]int{0, 0, 0, 0}, distance...)
n := len(distance)
i := 4
for i < n && distance[i] > distance[i-2] {
i++
}
if n == i {
return false
}
if distance[i] >= distance[i-2]-distance[i-4] {
distance[i-1] -= distance[i-3]
}
i++
for i < n && distance[i] < distance[i-2] {
i++
}
return i != n
}
|