[编程题]三个数的最大乘积

三个数的最大乘积

http://www.nowcoder.com/questionTerminal/8ae05c2913fe438b8b14f3968f64fc0b

  • 这题就是讨论三种情况吧,首先排序这没什么说的。
  • 第一种:最大的三个都是正数,取后三个相乘即可;
  • 第二种:绝对值最大的三个数中有两个负数,取前两个负数及最后一个正数即可;
    我看讨论里那个老哥应该是多了一个A[0]A[1]A[2],上面两种情况应该就够了,绝对值最大的三个数中有一个负数或者三个负数都可以覆盖。
#
# 最大乘积
# @param A int整型一维数组 
# @return long长整型
#    
class Solution:
    def solve(self , A ):
        A = sorted(A)
        max1 = A[-1]*A[-2]*A[-3]
        max2 = A[0]*A[1]*A[-1]
        return max(max1, max2)
全部评论
你这答案就是个锤子,排序的时间复杂度O(nlogn)
3 回复 分享
发布于 2021-04-17 10:59
你这个误导人,题目里面说了,时间复杂度必须O(n),空间复杂度必须O(1),你一排序还能保证这一要求吗?
5 回复 分享
发布于 2021-01-11 18:17
你这都排序了,握草,你好意思
点赞 回复 分享
发布于 2022-02-14 06:53

相关推荐

12-27 22:29
门头沟学院 Java
点赞 评论 收藏
分享
饿魔:没人说?我来牛美孩
点赞 评论 收藏
分享
评论
12
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务