LeetCode152. 乘积最大子数组

素颜马尾好姑娘i 2023-01-22 12:46 314阅读 0赞

题目难度:中等
题目描述:

给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。

在这里插入图片描述

  1. class Solution {
  2. public:
  3. int maxProduct(vector<int>& nums) {
  4. int n=nums.size();
  5. int dp[n+1];
  6. int dp_min[n+1];
  7. dp[0]=nums[0];
  8. dp_min[0]=nums[0];
  9. int ans=nums[0];
  10. for(int i=1;i<n;i++){
  11. dp[i]=max(nums[i]*dp_min[i-1],max(nums[i]*dp[i-1],nums[i]));
  12. dp_min[i]=min(nums[i]*dp[i-1],min(nums[i]*dp_min[i-1],nums[i]));
  13. if(dp[i]>ans){
  14. ans=dp[i];
  15. }
  16. }
  17. return ans;
  18. }
  19. };

发表评论

表情:
评论列表 (有 0 条评论,314人围观)

还没有评论,来说两句吧...

相关阅读

    相关 152. 乘积数组

    打卡!!!每日一题 今天继续为大家分享一道动态规划类型的题目。 题目描述: > 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一

    相关 152.乘积数组

    //给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 // // 示例 1: // 输入