题解 | #三个数的最大乘积#

三个数的最大乘积

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

全部评论

相关推荐

notbeentak...:就抓,嗯抓,开不开匿名都要抓,一点坏事不让说,就对公司顶礼膜拜佩服的五体投地就对了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务