Нахождение минимального и максимального значений в 2D-массиве: методы и примеры

Ниже приведен пример программы Java, которая находит минимальное и максимальное значения в двумерном массиве:

public class MinMaxIn2DArray {
   public static void main(String[] args) {
      int[][] matrix = {
            {5, 10, 15},
            {20, 25, 30},
            {35, 40, 45}
      };
      int min = matrix[0][0];
      int max = matrix[0][0];
      for (int i = 0; i < matrix.length; i++) {
         for (int j = 0; j < matrix[i].length; j++) {
            if (matrix[i][j] < min) {
               min = matrix[i][j];
            }
            if (matrix[i][j] > max) {
               max = matrix[i][j];
            }
         }
      }
      System.out.println("Minimum value: " + min);
      System.out.println("Maximum value: " + max);
   }
}

Эта программа инициализирует двумерный массив с именем matrix, а затем перебирает каждый элемент массива, чтобы найти минимальное и максимальное значения. Начальные значения для minи maxустанавливаются для первого элемента массива. Затем для каждого элемента массива мы сравниваем его с текущими значениями minи maxи обновляем их при необходимости.

Что касается статьи в блоге, вот несколько методов, которые вы можете обсудить на примерах кода:

  1. Метод 1. Наивный подход

    • Этот метод предполагает перебор всего 2D-массива и сравнение каждого элемента с текущими минимальным и максимальным значениями. Временная сложность этого подхода равна O(n^2), где n — количество элементов в массиве.
  2. Метод 2. Сортировка массива

    • Другой подход — преобразовать 2D-массив в 1D-массив и затем отсортировать его. Минимальное значение будет первым элементом, а максимальное значение будет последним элементом. Этот подход имеет временную сложность O(n log n) из-за этапа сортировки.
  3. Метод 3. Использование потоков Java 8

    • При использовании потоков Java 8 вы можете использовать метод flatMapToIntдля выравнивания двумерного массива, а затем использовать minи maxметоды для поиска минимального и максимального значений соответственно. Этот подход обеспечивает краткое и понятное решение.
  4. Метод 4. Использование специального класса

    • Вы можете создать собственный класс, который инкапсулирует минимальные и максимальные значения и предоставляет методы для их обновления во время итерации по 2D-массиву. Этот подход обеспечивает большую гибкость и может быть полезен, если вам нужно выполнить дополнительные операции со значениями.

Это всего лишь несколько примеров. Могут быть и другие методы. Не стесняйтесь исследовать и экспериментировать с различными подходами.