返回一個二維整數陣列中的最大子陣列的和
阿新 • • 發佈:2018-11-04
#include<iostream> using namespace std; int max(int a,int b) { if(a>b) {return a; } else {return b; } } int maxsum(int a,int n) { int i; int maxsofar=0;//maxsofar記錄到目前為止的最大值 int maxendinghere=0;//maxendinghere記錄從當前位置開始網前幾個連續的數的和的最大值 for(i=0;i<n;i++) { maxendinghere=max(maxendinghere+a[i],0); maxsofar=max(maxsofar,maxendinghere); } return maxsofar; } int main() { int n,a i=0; cout<<"請輸入陣列:"; cin>>a[i]; int max=maxsum(a,n); cout<<最大子陣列的和為:"<<max<<endl; return 0; }