Максимизируйте произведение матрицы, многократно умножая пары соседних ячеек на -1.
Опубликовано: 22 Сентября, 2022
Дана матрица mat[][] из размеры NxN , состоящие из целых чисел, задача состоит в том, чтобы найти максимальное произведение элементов матрицы mat[][] возможного многократного умножения пар соседних ячеек на -1 .
Примечание . Значение любого матричного элемента можно изменить на -1 не более одного раза.
Примеры:
Input: arr[][] = {{1, -2}, {2, -3}}
Output: 12
Explanation:
Multiply arr[0][1] and arr[1][1] by -1. Therefore, product of the matrix = = 1 * 2 * 2 * 3 = 12.Input: arr[][] = {{2, 2}, {-3, 1}};
Output: 216
Подход: Данная проблема может быть решена на основе следующих наблюдений:
- Если количество отрицательных чисел, присутствующих в матрице, четное, а количество нулей в матрице равно 1 , тогда измените этот 0 на 1 , а затем напечатайте произведение всех элементов в матрице в качестве результата. В противном случае выведите 0 в качестве результата.
- В противном случае измените минимальное абсолютное значение на 1 , а затем выведите в качестве результата произведение всех элементов матрицы.
Выполните следующие шаги, чтобы решить проблему:
- Найдите количество отрицательных чисел (скажем, count ) и нулей (скажем, нулей ) в данной матрице, пройдя матрицу mat[][] .
- Если число четное, а нулей 1 , то выведите произведение всех чисел в матрице, кроме 0 .
- В противном случае найдите минимальный абсолютный элемент в матрице, измените его на 1 и затем выведите в качестве результата произведение всех чисел в матрице.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(N 2 )
Вспомогательное пространство: O(1)