【5分钟力扣】628. 三个数的最大乘积

tech2026-03-16  3

文章目录

一、前言二、题目三、解法和思路

一、前言

如果纠错是消除软件bug的过程,那编程一定是把它们放进去的过程。

每天五分钟,看懂一道简单、中等难度的算法题,尽可能将复杂的题讲清楚。

疯狂学习python中,2020-09-04更新

二、题目

给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

示例 1:

输入: [1,2,3] 输出: 6

示例 2:

输入: [1,2,3,4] 输出: 24

注意:

给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maximum-product-of-three-numbers 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

三、解法和思路

解题思路:

先将数组按照从小到大的顺序排序,得到三种情况:

如果数组均为正数或者负数个数为1,则最大值为数组后三位的乘积如果数组均为负数,则最大值为数组后三位的乘积如果数组有正有负负数个数大于2,乘积最大值为排序数组前两个负数与数组最后一个正数相乘 nums = [1,2,3,4,6,2,5,7] class Solution: def maximumProduct(self, nums: List[int]) -> int: nums.sort() return max(nums[-1] * nums[-2] * nums[-3], nums[0] * nums[1] * nums[-1]) if __name__ == '__main__': obj = Solution() print(obj.maximumProduct(nums))
最新回复(0)