实现源码:
package algrithm;
public class maxsub
{
public static void main(String[] args)
{
int []a = {3, -7, 6, -1,2, -5, 3, 5, -10};
maxs(a);
}
public static void maxs(int []a)
{
int sum=0,b=0,n=a.length,start=0,end=0;
for(int i=1;i<=n;i++)
{
if(b>0)
b=b+a[i-1];
else
{
b=a[i-1];
start=i;
}
if(b>sum)
{
sum=b;
end=i;
}
}
System.out.println("动态规划算法最优值:" + sum);
System.out.println("最优解:" + start + "-->" + end);
}
}
结果:
动态规划算法最优值:10
最优解:3-->8