首页 > 编程语言 > 详细

152. 乘积最大子数组

时间:2020-04-03 15:09:04      阅读:53      评论:0      收藏:0      [点我收藏+]
 1 //1、如果nums[i]为正
 2 // min_val[i] = min(min_val[i - 1] * nums[i],nums[i]);
 3 // max_val[i] = max(max_val[i - 1] * nums[i],nums[i]);
 4 
 5 //2、如果nums[i]为负
 6 // min_val[i] = min(max_val[i - 1] * nums[i],nums[i]);
 7 // max_val[i] = max(min_val[i - 1] * nums[i],nums[i]);
 8 class Solution 
 9 {
10 public:
11     int maxProduct(vector<int>& nums) 
12     {
13         int n = nums.size();
14         vector<int> max_val(n,0);
15         vector<int> min_val(n,0);
16         min_val[0] = nums[0];
17         max_val[0] = nums[0];
18         int res = nums[0];
19         for(int i = 1;i < n;i ++)
20         {
21             if(nums[i] > 0)
22             {
23                 min_val[i] = min(min_val[i - 1] * nums[i],nums[i]);
24                 max_val[i] = max(max_val[i - 1] * nums[i],nums[i]);
25             }
26             else if(nums[i] < 0)
27             {
28                 min_val[i] = min(max_val[i - 1] * nums[i],nums[i]);
29                 max_val[i] = max(min_val[i - 1] * nums[i],nums[i]);
30             }
31             res = max(res,max_val[i]);
32         }
33         return res;
34     }
35 };

 

152. 乘积最大子数组

原文:https://www.cnblogs.com/yuhong1103/p/12625711.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!