数组的三个数最大乘积

给定一个包含[-1000, 1000]范围内整数的数组,找出能组成最大乘积的三个数。例如,输入[1,2,3],输出为6;输入[1,2,3,4],输出为24。在可能包含负数的情况下,需要考虑最大两个正数和最小两个负数的组合。" 50596006,5535977,动态计算ListView高度的方法,"['Android开发', '布局管理', '控件交互', '前端框架', 'UI设计']
摘要由CSDN通过智能技术生成

给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

示例 1:

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

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

给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。
输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。

来源:力扣(LeetCode)


假设没有负数的情况下,解是三个最大的数的乘积;若是包含负数,则是最大的两个正数和最小的两个负数比较,绝对值最大的和最大的正数的乘积即是结果。


# -*- coding: utf-8 -*-
#!/usr/bin/env python

"""
Created on Sat Aug  1 22:09:57 2020

@author: WowlNAN

@github: https://github.com/WowlNAN

@blog: https://blog.csdn.net/qq_21264377

"""


class Solution:
    def maximumProduct(self, nums) -> int:
        if len(nums)==3:
            return nums[0]*nums[1]*nums[2]
        a=nums.copy()
        b=max(a)
        a.remove(b)
        c=max(a)
        a.remove(c)
        d=max(a)
        m=[b,c,d]
        a=nums.cop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值