题解方法
数学归纳
第一种情况
- 第 i 次移动和第 i−3 次移动(包含端点)交叉的情况
- 第 i−1 次移动距离小于等于第 i−3 次移动距离
- 第 i 次移动距离大于等于第 i−2 次移动距离
第二种情况
- 第 4 次移动距离等于第 2 次移动距离。
- 第 5 次移动距离大于等于第 3 次移动距离减第 1 次移动距离的差
第三种情况
第 i−1 次移动距离大于等于第 i−3 次移动距离
第 i−2 次移动距离大于等于第 i−4 次移动距离
第 i 次移动距离大于等于第 i−2 次移动距离减第 i−4 次移动距离的差
第 i−1 次移动距离大于等于第 i−3 次移动距离减第 i−5 次移动距离的差
核心代码
数学归纳
第一种情况
1 2 3 4 5
| if (distance[i - 1] <= distance[i - 3] && distance[i] >= distance[i - 2]) { return true; }
|
第二种情况
1 2 3 4 5 6 7
| else if (i == 4 && distance[i - 2] >= distance[i - 4] && distance[i - 1] == distance[i - 3] && distance[i] >= distance[i - 2] - distance[i - 4]) { return true; }
|
第三种情况
1 2 3 4 5 6 7 8
| else if (i > 4 && distance[i - 1] <= distance[i - 3] && distance[i - 2] >= distance[i - 4] && distance[i] >= distance[i - 2] - distance[i - 4] && distance[i - 1] >= distance[i - 3] - distance[i - 5]) { return true; }
|
题目来源
335. 路径交叉 - 力扣(LeetCode) (leetcode-cn.com)