Ниже приведен пример программы 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. Наивный подход
- Этот метод предполагает перебор всего 2D-массива и сравнение каждого элемента с текущими минимальным и максимальным значениями. Временная сложность этого подхода равна O(n^2), где n — количество элементов в массиве.
-
Метод 2. Сортировка массива
- Другой подход — преобразовать 2D-массив в 1D-массив и затем отсортировать его. Минимальное значение будет первым элементом, а максимальное значение будет последним элементом. Этот подход имеет временную сложность O(n log n) из-за этапа сортировки.
-
Метод 3. Использование потоков Java 8
- При использовании потоков Java 8 вы можете использовать метод
flatMapToInt
для выравнивания двумерного массива, а затем использоватьmin
иmax
методы для поиска минимального и максимального значений соответственно. Этот подход обеспечивает краткое и понятное решение.
- При использовании потоков Java 8 вы можете использовать метод
-
Метод 4. Использование специального класса
- Вы можете создать собственный класс, который инкапсулирует минимальные и максимальные значения и предоставляет методы для их обновления во время итерации по 2D-массиву. Этот подход обеспечивает большую гибкость и может быть полезен, если вам нужно выполнить дополнительные операции со значениями.
Это всего лишь несколько примеров. Могут быть и другие методы. Не стесняйтесь исследовать и экспериментировать с различными подходами.