class Solution {
public:
/**
* 最大乘积
* @param A int整型一维数组
* @param ALen int A数组长度
* @return long长整型
*/
long long solve(int* A, int ALen) {
int max1 = INT_MIN;
int max2 = max1, max3 = max1;
int min1 = INT_MAX;
int min2 = min1;
for (int i = 0; i < ALen; i++) {
if (A[i] > max1) {
max3 = max2;
max2 = max1;
max1 = A[i];
} else if (A[i] > max2) {
max3 = max2;
max2 = A[i];
} else if (A[i] > max3) {
max3 = A[i];
}
if (A[i] < min1) {
min2 = min1;
min1 = A[i];
} else if (A[i] < min2) {
min2 = A[i];
}
}
return max((long)min1*min2*max1, (long)max1*max2*max3);
// write code here
}
};