二维最大字段和问题【dp】

¢设数组 b 表示数组a的 i~ j 0≤ ijn-1 )行, 对应列 元素的
¢对数组 b 计算最大子段和 ,这就将二维动态规划问题转化为一维动态规划问题。




 
 
#include<stdio.h>
#include<iostream>
#include<string.h>
int a[1000005];
using namespace std;
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		int ans=-1;
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&a[i]);
		}
		int b=0;
		for(int i=1;i<=n;i++)
		{
			if(b>0)
			{
				b+=a[i];
			}	
			else
			{
				b=a[i];
			}
			if(ans<b)
			{
				ans=b;
			}
			
		}
		printf("%d\n",ans);	
	}
	return 0;
	
 } 


猜你喜欢

转载自blog.csdn.net/qq_40816078/article/details/80599703