编程语言
首页 > 编程语言> > Python编程题36--三个数的最大乘积

Python编程题36--三个数的最大乘积

作者:互联网

题目

给定一个整数列表 nums ,且 nums 中至少含有3个整数,请在列表中找出由三个数组成的最大乘积,并输出这个乘积。

例如:

给定一个列表:[1, 2, 3],返回结果:6

给定一个列表:[1, 2, -3, -3, 0],返回结果:18

实现思路1

代码实现1

def maximumProduct(nums):
    nums.sort()
    return max(nums[0] * nums[1] * nums[-1], nums[-3] * nums[-2] * nums[-1])

实现思路2

代码实现2

def maximumProduct(nums):
    min1, min2 = float("inf"), float("inf")  # 定义一个无穷大的数,所有数都比 inf 小
    max1, max2, max3 = float("-inf"), float("-inf"), float("-inf")  # 定义一个无穷小的数,所有数都比 -inf 大
    for num in nums:
        if num < min1:
            min1, min2 = num, min1
        elif num < min2:
            min2 = num
        if num > max1:
            max1, max2, max3 = num, max1, max2
        elif num > max2:
            max2, max3 = num, max2
        elif num > max3:
            max3 = num
    num_product1 = max1 * max2 * max3
    num_product2 = max1 * min1 * min2
    return num_product1 if num_product1 > num_product2 else num_product2

更多Python编程题,等你来挑战:Python编程题汇总(持续更新中……)

标签:nums,Python,max3,max1,36,--,num,max2,min1
来源: https://www.cnblogs.com/wintest/p/15678797.html