【leetcode】-152-乘積最大子陣列-動態規劃
阿新 • • 發佈:2021-01-25
技術標籤:演算法刷題
https://blog.csdn.net/qq_39328436/article/details/112405890在這篇部落格中寫了最大子序列和的問題,f[i]=max(f[i-1]+nums[i],nums[i]),對這個題目的轉移方程可以有所啟發。
【動態規劃】
int maxProduct(vector<int>& nums) { int n=nums.size(); vector <int> maxF(n), minF(n); maxF[0]=nums[0]; minF[0]=nums[0]; for (int i = 1; i < nums.size(); ++i) { maxF[i] = max(maxF[i - 1] * nums[i], max(nums[i], minF[i - 1] * nums[i])); minF[i] = min(minF[i - 1] * nums[i], min(nums[i], maxF[i - 1] * nums[i])); } return *max_element(maxF.begin(),maxF.end()); }