Java Easiest Solution
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution {\n    public int largestSubmatrix(int[][] matrix) {\n        \n//          [0,0,1]\n//          [1,1,1]\n//          [1,0,1]\n        \n        int m = matrix.length;\n        int n = matrix[0].length;\n        \n        int[] colRes = new int[n];\n        \n        for(int i=1;i<m;i++){\n            for(int j=0;j<n;j++){\n                if(matrix[i][j]==1)\n                    matrix[i][j] += matrix[i-1][j];     \n            }\n        }\n        \n         // [0,0,1] => [1,0,0] \n         // [1,1,2] => [2,1,1]\n         // [2,0,3] => [3,2,0]                                             \n         \n           // for i=0\n          // __ \n         // |1|__|__| => [1,0,0] => hieght*base = 1*(i+1) => 1*1 for 1st ele  \n        //                      => hieght*base = 0*(i+1) => 0*2 for 2nd ele   \n       //                      => hieght*base = 0*(i+1) => 0*3 for 3rd ele\n        \n            // for i=1\n           // ___  \n          //  |1|___\n         //   |1|1|1| => [2,1,1] => hieght*base = 2*(i+1) => 2*1 for 1st ele = 2  \n        //                      => hieght*base = 1*(i+1) => 1*2 for 2nd ele = 2   \n       //                      =>  hieght*base  = 1*(i+1) => 1*3 for 3rd ele = 3\n        \n        \n            // for i=2\n            //___\n           // |1|__  \n          //  |1|1|\n         //   |1|1|__| => [3,2,0] => hieght*base = 3*(i+1) => 3*1 for 1st ele = 3  \n        //                      => hieght*base = 2*(i+1) => 2*2 for 2nd ele = 4   \n       //                      =>  hieght*base  = 0*(i+1) => 0*3 for 3rd ele = 0\n        \n        \n        // in all the above areas 4 is largest , hence the answer\n        \n        int maxArea = 0;\n        \n        for(int[] row:matrix){\n            int[] heights = row;\n            revSort(heights);\n            for(int i=0;i<heights.length;i++){\n                int myheight = heights[i];\n                int mybase   = i+1; //since max area should be covered \n                maxArea = Math.max(maxArea,myheight*mybase);\n            }\n        }\n        \n        return maxArea;\n           \n    }\n    public int[] revSort(int[] arr){\n        Arrays.sort(arr);\n        int left = 0;\n        int right = arr.length-1;\n        while(left<=right){\n            int temp = arr[left];\n            arr[left] = arr[right];\n            arr[right] = temp;\n            left++;\n            right--;\n        }\n        return arr;\n    }\n}\n```
['Java']