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
Решите эту задачу в браузере
Создайте бесплатный аккаунт — редактор Python, Java, JavaScript и Go, проверка на тестах за секунды.
Комментарии (0)
Зарегистрируйтесь или войдите, чтобы оставить комментарий
Пока нет комментариев. Будьте первым!