• leetcode_628. 三个数的最大乘积


    给你一个整型数组 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
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。****
    
    class Solution:
        def maximumProduct(self, nums: List[int]) -> int:
            nums.sort()
            n=len(nums)
            t=-1
            #寻找大于等于0的位置
            for i in range(n):
                if nums[i]>=0:
                    t=i
                    break
            if n==3:#只有3个数
                return nums[0]*nums[1]*nums[2]
            if t==-1:
                #全是负数
                return nums[-1]*nums[-2]*nums[-3]
            elif t==n-1:
                #一个正数或0
                return nums[-1]*nums[0]*nums[1]
            #elif t==n-2:
                #两个正数或0
            #    return max(nums[-1]*nums[-2]*nums[-3],nums[-1]*nums[0]*nums[1])
            else:#两个正数或以上
                 return max(nums[-1]*nums[-2]*nums[-3],nums[-1]*nums[0]*nums[1])
    
    
    class Solution:
        def maximumProduct(self, nums: List[int]) -> int:
            nums.sort()
            return max(nums[-1]*nums[-2]*nums[-3],nums[-1]*nums[0]*nums[1])
    
    class Solution:
        def maximumProduct(self, nums: List[int]) -> int:
            big1=big2=big3=-1001
            small1=small2=1001
            for x in nums:#两个最小值
                if x<small1:
                    small2=small1
                    small1=x
                elif x<small2:
                    small2=x
    
                if x>big1:
                    big3=big2
                    big2=big1
                    big1=x
                elif x>big2:
                    big3=big2
                    big2=x
                elif x>big3:
                    big3=x
    
            return max(big1*small1*small2,big1*big2*big3)
    
  • 相关阅读:
    JIRA Activity Stream连接到FishEye时路径不对
    职业分析
    Doublechecked locking解析
    Wireshark基本介绍和学习TCP三次握手
    插入排序算法
    Event.observe
    前端开发工程师如何在2013年里提升自己
    addEventListener(转)
    最好的HTML 5编码教程和参考手册分享
    XSRF 的攻击与防范
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14396116.html
Copyright © 2020-2023  润新知