package com.interview.multiarray; /** * Iterate through matrix and get all subsquare and subrectangle matrix and print their sum */ public class MatrixFindAllSubSquareRectangleMatrix { public void printSumOfAllSquareMatrix(int input[][]){ for(int len = 1; len <= input.length; len++){ for(int i=0; i < input.length - len + 1; i++){ for(int j=0; j < input[i].length - len + 1; j++){ int sum = 0; for(int k=i;k < i+len; k++){ for(int m = j; m < j+len; m++){ sum += input[k][m]; } } System.out.println("Start " + i + " " + j + " End " + len + " sum " + sum); } } } } public void printSumOfAllRectangleMatrix(int input[][]){ for(int rlen = 1 ; rlen <= input.length; rlen++){ for(int clen = 1; clen <= input[0].length; clen++){ for(int i=0; i < input.length - rlen + 1; i++){ for(int j=0; j < input[i].length - clen + 1; j++){ int sum = 0; for(int k=i;k < i+rlen; k++){ for(int m = j; m < j+clen; m++){ sum += input[k][m]; } } System.out.println("Start " + i + " " + j + " End " + (i + rlen-1) + " " + (j + clen-1) + " sum " + sum); } } } } } public static void main(String args[]){ int input[][] = {{1,2,3}, {4,5,6}, {7,8,9}}; MatrixFindAllSubSquareRectangleMatrix mal = new MatrixFindAllSubSquareRectangleMatrix(); mal.printSumOfAllRectangleMatrix(input); } }