3029. Максимальное произведение трёх чисел

Easy 4 решили
Дан целочисленный массив nums длины хотя бы 3. Выберите три разных элемента (три разных индекса; значения могут совпадать) так, чтобы их произведение было максимальным. Верните это произведение.

Числа могут быть отрицательными и нулями — это важно:
• часто ответ — произведение трёх самых больших чисел;
• но два самых маленьких (обычно два больших по модулю минуса) и одно самое большое могут дать ещё большее положительное произведение (минус × минус × плюс = плюс).

Порядок выбранных элементов не важен; вернуть нужно только число — максимум среди всех троек.

nums = [-1, -2, -3, 1, 2, 3]

1·2·3 = 6
(-3)·(-2)·3 = 18  ← максимум
(-3)·(-2)·(-1) = -6

Примеры:

Вход: [1, 2, 3, 4]
Выход: 24
Объяснение: Все положительные: максимум даёт тройка 2·3·4 = 24.
Вход: [-1, -2, -3, 1, 2, 3]
Выход: 18
Объяснение: (-3)·(-2)·3 = 18 больше, чем 1·2·3 = 6: два минуса дают плюс, его умножают на наибольший плюс.
Вход: [-1, -2, -3]
Выход: -6
Объяснение: Единственная тройка: (−1)·(−2)·(−3) = −6. Из трёх минусов произведение отрицательное — это и есть ответ.
Вход: [-10, -10, 5, 2]
Выход: 500
Объяснение: (-10)·(-10)·5 = 500 больше, чем 5·2·(-10) = -100 или 2·5·(-10).
Вход: [1, 0, -1]
Выход: 0
Объяснение: Единственная тройка: 1·0·(−1) = 0.

Ограничения:

3 <= nums.length <= 10^4 -1000 <= nums[i] <= 1000

Теги:

Массивы Сортировка

Комментарии (0)

Зарегистрируйтесь или войдите, чтобы оставить комментарий

Пока нет комментариев. Будьте первым!