题解 | #最大乘积#

最大乘积

https://www.nowcoder.com/practice/5f29c72b1ae14d92b9c3fa03a037ac5f

import sys

data= sys.stdin.readlines()
l=data[1].split(" ")

for i in range(len(l)):
    l[i]=int(l[i])
l.sort()
fushu=[]
zhengshu=[]
for item in l:
    if item<0:
        fushu.append(item)
    else:
        zhengshu.append(item)


lz=len(zhengshu)
lf=len(fushu)
max_value=0

#先计算正数的最大乘积
if lz>2:
    max_value=zhengshu[lz-1]*zhengshu[lz-2]*zhengshu[lz-3]

#如果含有负数,则用2个负数乘积去乘以最大的正数
if lf>1: 
    m2=zhengshu[lz-1]*abs(fushu[0])*abs(fushu[1])
    if m2>max_value:
        max_value=m2

print(max_value)

#此题目需要一定的分析问题能力

全部评论

相关推荐

不愿透露姓名的神秘牛友
02-25 17:03
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务