1. 程式人生 > 其它 >最大子段和(動態規劃)

最大子段和(動態規劃)

技術標籤:演算法

給定由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; }

在這裡插入圖片描述