Largest Submatrix With Rearrangements
Medium
Watch on YouTube ↗Solution
class Solution {
public int largestSubmatrix(int[][] grid) {
int m = grid.length, n = grid[0].length;
int ans = 0;
// O(m * (n + nlogn + n))
for(int i=0; i<m; i++) {
for(int j=0; j<n; j++) {
if(i>0 && grid[i][j]>0)
grid[i][j] += grid[i-1][j];
}
int temp[] = grid[i].clone(); // O(n)
Arrays.sort(temp);
for(int k=0; k<n; k++)
{
int width = n-k;
ans = Math.max(ans, temp[k]*width);
}
}
return ans;
}
}