題目:
給你一個整型數(shù)組 nums ,在數(shù)組中找出由三個數(shù)組成的最大乘積,并輸出這個乘積离咐。
示例 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
著作權歸領扣網絡所有夷磕。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處偏灿。
思路:
1、對列表進行排序
2钝的、排序后的列表共有3種情況:
a)全為正數(shù):則最大值為列表最右邊3個數(shù)相乘
b)有正有負:則最大值為 列表最右邊3個數(shù)相乘 或者 左邊兩個數(shù)和最右邊數(shù)相乘
c)全為負數(shù):則最大值為列表最右邊3個數(shù)相乘
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個最大的數(shù)和3個最小的數(shù),其他沒區(qū)別