class Solution {
public:
int maxProduct(vector<int>& nums) {
int n=nums.size();
int dp[n+1];
dp[0]=-100;
int ans=-100;
int dp2[n+1];
dp2[0]=100;
for(int i=1;i<n+1;i++){
if(nums[i-1]>0){
dp[i]=max(nums[i-1],dp[i-1]*nums[i-1]);
dp2[i]=min(nums[i-1],dp2[i-1]*nums[i-1]);
}
else{
dp[i]=max(nums[i-1],dp2[i-1]*nums[i-1]);
dp2[i]=min(nums[i-1],dp[i-1]*nums[i-1]);
}
ans=max(ans,dp[i]);
}
return ans;
}
};
152. 乘积最大子数组(动态规划)
最新推荐文章于 2022-09-09 10:51:38 发布