最大子段和(動態規劃)
阿新 • • 發佈:2021-01-05
技術標籤:演算法
給定由n個整數(可能有負整數)組成的序列(a1,a2,…,an),最大子段和問題要求該序列形如的最大值(1<=i<=j<=n),當序列中所有整數均為負整數時,其最大子段和為0。
#include <stdio.h>
#include<iostream>
using namespace std;
const int N = 8;
int main()
{
int n,arr[N];
cout<<"請輸入陣列大小:";
cin>>n;
cout << "所求序列為:" ;
for(int j=0;j<n;j++)
cin>>arr[j];
int proSum = 0,maxSum = 0;
for(int i=0;i<N;i++)
{
if(proSum<0)
proSum = arr[i];
else
proSum = proSum+arr[i];
if(maxSum < proSum)
maxSum = proSum;
}
cout << "該序列欄位最大和為:" << maxSum << endl;
system("pause" );
return 0;
}