628. Maximum Product of Three Numbers

 1 static int wing=[]()
 2 {
 3     std::ios::sync_with_stdio(false);
 4     cin.tie(NULL);
 5     return 0;
 6 }();
 7 
 8 class Solution 
 9 {
10 public:
11     int maximumProduct(vector<int>& nums) 
12     {
13         int max1=-1001,max2=-1001,max3=-1001,min1=1001,min2=1001;
14         for(int i:nums)
15         {
16             if(i>=max1)
17             {
18                 max3=max2;
19                 max2=max1;
20                 max1=i;
21             }
22             else if(i>=max2)
23             {
24                 max3=max2;
25                 max2=i;
26             }
27             else if(i>=max3)
28                 max3=i;
29             if(i<=min1)
30             {
31                 min2=min1;
32                 min1=i;
33             }
34             else if(i<=min2)
35                 min2=i;
36         }
37         return max(max1*max2*max3,min1*min2*max1);
38     }
39 };

扫描一遍,找到三个最大,两个最小即可

猜你喜欢

转载自www.cnblogs.com/zhuangbijingdeboke/p/9146989.html