题目链接
思路:归纳交叉的情况
分三种情况:
- i与i-3相交
- i与i-4相交
- i与i-5相交
图示:?
代码:?
class Solution {
public boolean isSelfCrossing(int[] distance) {
int n = distance.length;
if(n<4) return false;
for(int i=3;i<n;i++){
if((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-5]))
&&(distance[i-2]>distance[i-4])
&&(distance[i]>=(distance[i-2]-distance[i-4]))
&&distance[i-1]<distance[i-3]) return true;
}
return false;
}
}
|