lintcode入门篇十七

1119. 三个数的最大乘积

中文 English

给定一个整数数组,找到三个元素,使乘积最大,返回该积。

样例

样例 1:

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

样例 2:

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

注意事项

  1. 数组的长度范围为[3, 10^4],所有的元素范围为[-1000, 1000]
  2. 任意三个元素的积不会超过32位有符号整数的范围。
class Solution:
    """
    @param nums: an integer array
    @return: the maximum product
    """
    '''
    大致思路:
    1.依次给出第一大第二大第三大的值,每次remove掉一个,然后return
    2.因为还存在负数,所以需要考虑负数和负数相乘的最大乘积
    '''
    def maximumProduct(self,nums):
        return max(sorted(nums)[-1]*sorted(nums)[-2]*sorted(nums)[-3],sorted(nums)[0]*sorted(nums)[1]*sorted(nums)[-1])

猜你喜欢

转载自www.cnblogs.com/yunxintryyoubest/p/12684631.html