#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); } }; //看懂别人解析后写的