From 5b134831b267d0877220cba8b02663ea255fc614 Mon Sep 17 00:00:00 2001 From: anish602 <116447899+anish602@users.noreply.github.com> Date: Sat, 22 Oct 2022 20:47:19 +0530 Subject: [PATCH] Created Maximum Product Subarray Added Leetcode standard problem Maximum Product Subarray. Kindly review it and merge it. --- Dynamic Programming/Maximum Product Subarray | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Dynamic Programming/Maximum Product Subarray diff --git a/Dynamic Programming/Maximum Product Subarray b/Dynamic Programming/Maximum Product Subarray new file mode 100644 index 0000000..e46d94c --- /dev/null +++ b/Dynamic Programming/Maximum Product Subarray @@ -0,0 +1,15 @@ +class Solution { +public: + int maxProduct(vector& nums) { + vector max_dp(nums.size() + 1, INT_MAX); + vector min_dp(nums.size() + 1, INT_MIN); + max_dp[0] = 1; min_dp[0] = 1; + int res = INT_MIN; + for(int i = 0; i < nums.size(); ++i){ + max_dp[i + 1] = max(max_dp[i] * nums[i], max(min_dp[i] * nums[i], nums[i])); + min_dp[i + 1] = min(max_dp[i] * nums[i], min(min_dp[i] * nums[i], nums[i])); + res = max(res, max_dp[i + 1]); + } + return res; + } +};