Java教程

LeetCode_335 路径交叉(Java版)

本文主要是介绍LeetCode_335 路径交叉(Java版),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

image

只有如下三种情况:

    /*               i-2
    case 1 : i-1┌─┐
                └─┼─>i
                 i-3

                    i-2
    case 2 : i-1 ┌────┐
                 └─══>┘i-3
                 i  i-4      (i overlapped i-4)

    case 3 :    i-4
               ┌──┐
               │i<┼─┐
            i-3│ i-5│i-1
               └────┘
                i-2

*/
public class Solution_335 {
    public boolean isSelfCrossing(int[] distance) {
        for (int i = 3; i < distance.length; i++) {
            if (distance[i] >= distance[i-2] && distance[i-1] <= distance[i-3]){
                return true;
            }
            if (i == 4 && distance[1] == distance[3] && distance[0] + distance[4] == distance[2]){
                return true;
            }
            if (i >= 5 && distance[i-1] >= distance[i-3]-distance[i-5] && distance[i-1] <= distance[i-3] &&
                    distance[i] >= distance[i-2] - distance[i-4] && distance[i-2] >= distance[i-4]){
                return true;
            }

        }
        return false;
    }

}
这篇关于LeetCode_335 路径交叉(Java版)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!