Simplistic brute-force |
1. Set the positions of the Top-Left and Bottom-Right corners of a subrectangle.2. Iterate through all the rows and columns sequentially and find the maximum sum sub-rectangle. |
O ( n^6 ) |
Dynamic programming : Aggregate rectangles |
1. Convert the rectangle into an aggregate rectangle using inclusion-exclusion principle.2. Find the maximum sum subrectangle using dynamic programming and inclusion-exclusion principle. |
O ( n^4 ) |
Dynamic programming : Kadane’s algorithm with row summations |
1. Build all sub-rectangles between the left-most and right-most column.2. For every single subrectangle get row summations.3. Apply Kadane’s algorithm on the sub-rectangle for finding the maximum sum sub-rectangle. |
O ( n^3 ) |