大学の課題で行き詰まっています。タスクは、再帰的で動的なプログラミング方法を見つけて、配列の最も長く、結果として昇順のサブシーケンスの長さを計算することです。たとえば、配列が {4 , -5 , -3, -2, 5, -2, 0, 3 , 2} の場合、最大長はサブシーケンス {-5, -3, -2, 5 を持つ 4 になります。 }。再帰的な方法を見つけるのに苦労しています。再帰的な方法がなければ、動的な方法を見つけることは不可能です。
私は何かをプログラミングしようとしましたが、それが間違っていることを知っており、修正方法がわかりません:
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;
}
}
}