importjava.util.*;publicclassMaxUpsequence{publicstaticvoidmain(String[]args){MaxUpsequencemySeq=newMaxUpsequence();int[]myArray={2,3};System.out.println(mySeq.maxSeqValu...
import java.util.*;
public class MaxUpsequence
{
public static void main(String [] args)
{
MaxUpsequence mySeq = new MaxUpsequence();
int [] myArray = {2,3};
System.out.println(mySeq.maxSeqValue(myArray));}
public int maxSeqValue(int [] a)
{
int n=a.length;
if(n==0)
return 0;
int[] sum=new int[n];
if(a[0]>=0)
sum[0]=a[0];
else
sum[0]=0;
for(int i = 1;i
{
sum[i]=sum[0];
for(int j=0;j
{
if(a[j]<=a[i]&&sum[j]>=sum[i]-sum[0]&&a[i]>0)
sum[i]=sum[j]+a[i];
}
}
Arrays.sort(sum);
return sum[n-1];
}
}
返回值不对
这题应该返回19,因为和最大的非降序子序列是2,3,14
但是我运行的结果是20
求高手帮忙看下!!
上面写错了一点..int [] myArray = {2,3}; 是我测试用的,显示结果正确是5
int [] myArray = {5,-11,2,3,14,5,-11,2};才是原数组,可是结果是错的,应该是19,运行的是20
1楼的写错了,如果运行数组是{2,3},{2,3,4}{2,3,4,5}的话 显示的结果永远是2 ,怎么改
展开