Largest Submatrix With Rearrangements LeetCode solution in Java
1class Solution {2public int largestSubmatrix(int[][] matrix) {3int m = matrix.length, n = matrix[0].length;4for (int i = 1; i < m; ++i) {5for (int j = 0; j < n; ++j) {6if (matrix[i][j] == 1) {7matrix[i][j] = matrix[i - 1][j] + 1;8}9}10}11int ans = 0;12for (var row : matrix) {13Arrays.sort(row);14for (int j = n - 1, k = 1; j >= 0 && row[j] > 0; --j, ++k) {15int s = row[j] * k;16ans = Math.max(ans, s);17}18}19return ans;20}21}