2
public int maxArea(int h, int w, int[] horizontalCuts, int[] verticalCuts) {3
Arrays.sort(horizontalCuts);4
Arrays.sort(verticalCuts);6
int hMax = horizontalCuts[0];7
for (i = 1; i < horizontalCuts.length; i++)8
// if(hMax < horizontalCuts[i]-horizontalCuts[i-1])9
hMax = Math.max(hMax, horizontalCuts[i] - horizontalCuts[i - 1]);10
if (h - horizontalCuts[horizontalCuts.length - 1] > hMax)11
hMax = h - horizontalCuts[horizontalCuts.length - 1];12
int vMax = verticalCuts[0];13
for (i = 1; i < verticalCuts.length; i++)14
// if(vMax < verticalCuts[i]-verticalCuts[i-1])15
vMax = Math.max(vMax, verticalCuts[i] - verticalCuts[i - 1]);16
if (w - verticalCuts[verticalCuts.length - 1] > vMax)17
vMax = w - verticalCuts[verticalCuts.length - 1];18
return (int) ((long) hMax * vMax % 1000000007);