题目:
给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入:nums = [1,2,3]
输出:6
示例 2:
输入:nums = [1,2,3,4]
输出:24
示例 3:
输入:nums = [-1,-2,-3]
输出:-6
提示:
3 <= nums.length <= 104
-1000 <= nums[i] <= 1000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-product-of-three-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:
1、对列表进行排序
2、排序后的列表共有3种情况:
a)全为正数:则最大值为列表最右边3个数相乘
b)有正有负:则最大值为 列表最右边3个数相乘 或者 左边两个数和最右边数相乘
c)全为负数:则最大值为列表最右边3个数相乘
Python代码:
class Solution(object):
def maximumProduct(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums.sort()
size = len(nums)
return max(nums[size-1]*nums[size-2]*nums[size-3], nums[0]*nums[1]*nums[size-1])
思路2:
不排序,直接找3个最大的数和3个最小的数,其他没区别