1. 程式人生 > >PAT甲級 最大連續子序列和

PAT甲級 最大連續子序列和

目前PAT甲級中涉及Dijkstra的題目有如下幾題:

最大連續子序列和提供兩種寫法:

1.動態規劃:

int a[maxn],dp[maxn];//a[i]存放序列,dp[i]存放以a[i]結尾的連續序列的最大和
dp[0]=a[0];
for(int i=1;i<n;i++){
	//狀態轉移方程
	if(dp[i-1]+a[i]>a[i]){
		dp[i]=dp[i-1]+a[i];
	}else dp[i]=a[i];
}
//找出最大值
int k=0;
for(int i=1;i<n;i++){
	if(dp[i]>dp[k]) k=i;
}
cout<<dp[k];