Advertisement
rajeshinternshala

Untitled

Oct 17th, 2023
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.91 KB | None | 0 0
  1.   public static int[] solution(int[][] matrix) {
  2.         int rows = matrix.length;
  3.         int cols = matrix[0].length;
  4.         int[] result = new int[2];
  5.         int minDifference = Integer.MAX_VALUE;
  6.  
  7.         for (int i = 0; i < rows - 1; i++) {
  8.             for (int j = 0; j < cols - 1; j++) {
  9.                 int[] avgs = {
  10.                         average(matrix, 0, i, 0, j),
  11.                         average(matrix, 0, i, j + 1, cols - 1),
  12.                         average(matrix, i + 1, rows - 1, 0, j),
  13.                         average(matrix, i + 1, rows - 1, j + 1, cols - 1)
  14.                 };
  15.  
  16.                 int minAvg = Integer.MAX_VALUE, maxAvg = Integer.MIN_VALUE;
  17.                 boolean isMinusOne = false;
  18.                 for (int avg : avgs) {
  19.                     if (avg != -1) {
  20.                         minAvg = Math.min(minAvg, avg);
  21.                         maxAvg = Math.max(maxAvg, avg);
  22.                     } else if (avg == -1) {
  23.                         isMinusOne = true;
  24.                         break;
  25.                     }
  26.                 }
  27.                 if (isMinusOne) continue;
  28.  
  29.                 if (minAvg != Integer.MAX_VALUE && maxAvg != Integer.MIN_VALUE) {
  30.                     if (maxAvg - minAvg <= minDifference) {
  31.                         minDifference = maxAvg - minAvg;
  32.                         result[0] = i;
  33.                         result[1] = j;
  34.                     }
  35.                 }
  36.             }
  37.         }
  38.  
  39.         return result;
  40.     }
  41.  
  42.     public static int average(int[][] matrix, int r1, int r2, int c1, int c2) {
  43.         int sum = 0;
  44.         int count = 0;
  45.         for (int i = r1; i <= r2; i++) {
  46.             for (int j = c1; j <= c2; j++) {
  47.                 if (matrix[i][j] >= 0) {
  48.                     sum += matrix[i][j];
  49.                     count++;
  50.                 }
  51.             }
  52.         }
  53.         return count == 0 ? -1 : sum / count;
  54.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement