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