Skip to content

Commit 7262c5d

Browse files
committed
Create 1139.最大的以 1 为边界的正方形.js
1 parent 26125ae commit 7262c5d

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* @param {number[][]} grid
3+
* @return {number}
4+
*/
5+
var largest1BorderedSquare = function (grid) {
6+
let result = 0;
7+
const dp = [];
8+
for (let i = 0; i < grid.length; i++) {
9+
dp[i] = [];
10+
for (let j = 0; j < grid[i].length; j++) {
11+
dp[i][j] = [];
12+
if (grid[i][j] === 0) {
13+
dp[i][j][0] = 0;
14+
dp[i][j][1] = 0;
15+
} else if (i === 0) {
16+
dp[i][j][0] = 1 + (j > 0 ? dp[i][j - 1][0] : 0);
17+
dp[i][j][1] = 1;
18+
} else if (j === 0) {
19+
dp[i][j][0] = 1;
20+
dp[i][j][1] = 1 + (i > 0 ? dp[i - 1][j][1] : 0);
21+
} else {
22+
dp[i][j][0] = 1 + dp[i][j - 1][0];
23+
dp[i][j][1] = 1 + dp[i - 1][j][1];
24+
}
25+
26+
let len = Math.min(...dp[i][j]);
27+
while (len) {
28+
if (dp[i - len + 1][j][0] >= len && dp[i][j - len + 1][1] >= len) {
29+
break;
30+
}
31+
len--;
32+
}
33+
result = Math.max(result, len);
34+
}
35+
}
36+
return result * result;
37+
};

0 commit comments

Comments
 (0)