0
点赞
收藏
分享

微信扫一扫

LeetCode: 152. Maximum Product Subarray


LeetCode: 152. Maximum Product Subarray

题目描述

Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product.

Example 1:

Input: [2,3,-2,4]
Output: 6
Explanation: [2,3] has the largest product 6.

Example 2:

Input: [-2,0,-1]
Output: 0
Explanation: The result cannot be 2, because [-2,-1] is not a subarray.

题目大意: 求出最大连续子数组乘积。

解题思路 —— 暴力求解

直接将所有的存在可能都求解出来,找出最大值。

AC代码

class Solution {
public:
int maxProduct(vector<int>& nums) {
// products[i]: i...当前位置的乘积
vector<int> products(nums.size(), 0);
int ans = INT_MIN;
for(size_t j = 0; j < nums.size(); ++j)
{
for(int i = j; i >= 0; --i)
{
if(i == j) products[i] = nums[i];
else products[i] = products[i]*nums[j];

// 保存最大乘积
ans = max(ans, products[i]);
}
}

return ans;
}
};


举报

相关推荐

0 条评论