题解 | #三个数的最大乘积#
三个数的最大乘积
https://www.nowcoder.com/practice/8ae05c2913fe438b8b14f3968f64fc0b
#include <climits>
class Solution {
public:
long long solve(vector<int>& A) {
//维护三个大的元素,两个小的元素
int max1 = INT_MIN, max2 = INT_MIN, max3 = INT_MIN;
int min1 = INT_MAX,min2 = INT_MAX;
for(int i = 0; i < A.size(); i++){
int temp = A[i];
if(temp > max1){
max3 = max2;
max2 = max1;
max1 = temp;
}
else if(max2 <temp ){
max3 = max2;
max2 =temp;
}
else if(max3 < temp) max3 = temp;
if(temp < min1){
min2 = min1;
min1 = temp;
}
else if(temp < min2) min2 = temp;
}
long ans = (long) max1 * (long)max2 * (long)max3;
long ans2 = (long)max1 * (long) min1 *(long)min2;
return max(ans, ans2);
}
};
//看懂别人解析后写的
