美文网首页
leetcode 628. 三个数的最大乘积

leetcode 628. 三个数的最大乘积

作者: minningl | 来源:发表于2022-04-13 23:34 被阅读0次

    题目:

    给你一个整型数组 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个最小的数,其他没区别

    相关文章

      网友评论

          本文标题:leetcode 628. 三个数的最大乘积

          本文链接:https://www.haomeiwen.com/subject/dmezsrtx.html