【数组】152. 乘积最大子数组

题目:

 

 

解答:

 

 

 1 class Solution {
 2 public:
 3     int maxProduct(vector<int>& nums) 
 4     {
 5         int max = INT_MIN;
 6         int imax = 1;
 7         int imin = 1;
 8 
 9         for (int i = 0;i < nums.size(); i++)
10         {
11             if (nums[i] < 0)
12             {
13                 std::swap(imax, imin);
14             }
15 
16             imax = std::max(imax * nums[i], nums[i]);
17             imin = std::min(imin * nums[i], nums[i]);
18 
19             max = std::max(max, imax);
20         }
21         
22         return max;
23     }
24 };

 

posted @ 2020-05-05 21:36  梦醒潇湘  阅读(186)  评论(0)    收藏  举报