生活随笔
收集整理的這篇文章主要介紹了
连续最大子序列乘积
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個整數數組?nums?,找出一個序列中乘積最大的連續子序列(該序列至少包含一個數)。
含有正負?
https://blog.csdn.net/u012469987/article/details/50897291
https://blog.csdn.net/coolwriter/article/details/79916458
?
#include <bits/stdc++.h>
using namespace std;
vector<int>::iterator it;
class Solution{public:int maxProduct(vector<int>& nums){int n=nums.size();long long MAX=nums[0];long long dp_max=nums[0;long long dp_min=nums[0]; for(int i=1;i<n;++i){long long dpM = max( (long long )nums[i],max( dp_max * nums[i] , dp_min * nums[i]) );long long dpm = min( (long long )nums[i],min( dp_max * nums[i] , dp_min * nums[i]) ); dp_max=dpM; dp_min=dpm;MAX = max(MAX , dp_max);}return MAX;}
};
int main(){Solution s;int n,a;vector<int>v;it=v.begin();while(cin>>n){v.clear();for(int i=0;i<n;++i){scanf("%d",&a);v.push_back(a);}cout<<s.maxProduct(v) << endl;
}return 0;
}
?
總結
以上是生活随笔為你收集整理的连续最大子序列乘积的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。