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