我被困在做大学作业。任务是找到一种递归然后动态编程的方法来计算数组的最长、后继、升序子序列的长度。例如,如果数组是: {4 , -5 , -3, -2, 5, -2, 0, 3 , 2} 最大长度将是 4 子序列 {-5, -3, -2, 5 }。我很难找到递归方式,如果没有递归方式,就不可能为我找到动态方式。
我尝试过编程,但我知道这是错误的,我不知道如何修复它:
public static int length(int[] arr,int j)
{
if(arr.length == 1)
{
return 1;
}
if(j == 1)
{
if(arr[j-1] < arr[j])
{
return 1;
}
else
{
return 0;
}
}
else
{
int c = length(arr,j-1);
if(arr[j-1] < arr[j])
{
return 1 + c;
}
else
{
return 0;
}
}
}