• 这题就是讨论三种情况吧,首先排序这没什么说的。
  • 第一种:最大的三个都是正数,取后三个相乘即可;
  • 第二种:绝对值最大的三个数中有两个负数,取前两个负数及最后一个正数即可;
    我看讨论里那个老哥应该是多了一个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)