335. Self Crossing Solution 1 (time O(n), space O(1)) class Solution(object): def isSelfCrossing(self, distance): """ :type distance: List[int] :rtype: bool """ for i in range(3, len(distance)): if (distance[i] >= distance[i - 2] and distance[i - 1] <= distance[i - 3]): return True if (i == 4 and distance[3] == distance[1] and distance[4] >= distance[2] - distance[0]): return True if (i >= 5 and distance[i - 3] - distance[i - 5] <= distance[i - 1] and distance[i - 1] <= distance[i - 3] and distance[i] >= distance[i - 2] - distance[i - 4] and distance[i - 2] > distance[i - 4]): return True return False