1
class Solution {
2

3
public boolean isSelfCrossing(int[] x) {
4
boolean arm = false;
5
boolean leg = false;
6
for (int i = 2; i < x.length; ++i) {
7
int a = f(x, i - 2) - f(x, i - 4);
8
int b = f(x, i - 2);
9

10
if (arm && x[i] >= b) return true; // cross [i - 2]
11
if (leg && x[i] >= a && a > 0) return true; // cross [i - 4]
12

13
if (x[i] < a) arm = true;
14
else if (x[i] <= b) leg = true;
15
}
16
return false;
17
}
18

19
private int f(int[] x, int index) {
20
return (index < 0) ? 0 : x[index];
21
}
22
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0