1class Solution {23public boolean isSelfCrossing(int[] x) {4boolean arm = false;5boolean leg = false;6for (int i = 2; i < x.length; ++i) {7int a = f(x, i - 2) - f(x, i - 4);8int b = f(x, i - 2);910if (arm && x[i] >= b) return true; // cross [i - 2]11if (leg && x[i] >= a && a > 0) return true; // cross [i - 4]1213if (x[i] < a) arm = true;14else if (x[i] <= b) leg = true;15}16return false;17}1819private int f(int[] x, int index) {20return (index < 0) ? 0 : x[index];21}22}