publicclassSolution { privatestaticfinalint_MAX=6; // size of matrix privatestaticfinalint_OFFSET=2; // hourglass width privatestaticint matrix[][] = newint[_MAX][_MAX]; privatestaticintmaxHourglass= -63; // initialize to lowest possible sum (-9 x 7) /** Given a starting index for an hourglass, sets maxHourglass * @param i row * @param j column **/ privatestaticvoidhourglass(int i, int j){ inttmp=0; // current hourglass sum for(intk= j; k <= j + _OFFSET; k++){ tmp += matrix[i][k]; // top 3 elements tmp += matrix[i + _OFFSET][k]; // bottom 3 elements } tmp += matrix[i + 1][j + 1]; // middle element if(maxHourglass < tmp){ maxHourglass = tmp; } }