1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| import java.util.Arrays;
class Solution {
public int solution(int[] mats, String[][] park) {
int rows = park.length;
int cols = park[0].length;
int maxSize = -1;
Arrays.sort(mats);
for (int m = mats.length - 1; m >= 0; m--) {
boolean canPlace = false;
for (int i = 0; i <= rows - mats[m]; i++) {
for (int j = 0; j <= cols - mats[m]; j++) {
boolean allMinusOne = true;
for (int x = i; x < i + mats[m]; x++) {
for (int y = j; y < j + mats[m]; y++) {
if (!park[x][y].equals("-1")) {
allMinusOne = false;
break;
}
}
if (!allMinusOne) break;
}
if (allMinusOne) {
canPlace = true;
break;
}
}
if (canPlace) break;
}
if (canPlace) {
maxSize = mats[m];
break;
}
}
return maxSize;
}
}
|