forked from doocs/leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSolution.ts
36 lines (30 loc) · 991 Bytes
/
Solution.ts
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
function largestSubmatrix(matrix: number[][]): number {
for (let column = 0; column < matrix[0].length; column++) {
for (let row = 0; row < matrix.length; row++) {
let tempRow = row;
let count = 0;
while (tempRow < matrix.length && matrix[tempRow][column] === 1) {
count++;
tempRow++;
}
while (count !== 0) {
matrix[row][column] = count;
count--;
row++;
}
}
}
for (let row = 0; row < matrix.length; row++) {
matrix[row].sort((a, b) => a - b);
}
let maxSubmatrixArea = 0;
for (let row = 0; row < matrix.length; row++) {
for (let col = matrix[row].length - 1; col >= 0; col--) {
maxSubmatrixArea = Math.max(
maxSubmatrixArea,
matrix[row][col] * (matrix[row].length - col),
);
}
}
return maxSubmatrixArea;
}