最初的想法:判断当前线段与它前面第3条或者第5条线段是否相交,相交会发生在横线和竖线之间,3、5分别对应收缩型和扩张型的结构。这时漏掉了2、1、2、1、1这种同为竖线的情况,因此又在代码中加上了与前面第4条是否相交的判断。时空复杂度均满足题目要求,但是判线段是否相交使用了叉乘等计算几何中常用的算法,因此代码较长。

之后在Disscuss板块发现了更为直接的想法和更简单的代码,所以也一并学习下: