2

大学の課題で行き詰まっています。タスクは、再帰的で動的なプログラミング方法を見つけて、配列の最も長く、結果として昇順のサブシーケンスの長さを計算することです。たとえば、配列が {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;
        }
    }
}
4

1 に答える 1