Могу ли я сделать более быструю рекурсию для этого pascal треугольника в java? - PullRequest
0 голосов
/ 04 мая 2020
public static int[] computePT(int k) {

    int[] arr = new int[k];

    if(k==1){
        arr[0] = 1;
        return arr;
    }else{

        for (int i=(k+1)/2 -1 ; i >= 0; i--){

            if(i==0){
                arr[0] = 1;
                arr[k-1] = 1;

            }else {
                int[] yell = computePT(k-1);
                arr[i] = yell[i-1] + yell[i];
                arr[k-i-1] = arr[i];
            }
        }
        return arr;
    }
}

Эта функция вернет элементы k-й строки в pascal треугольнике, но я бы хотел сделать это в более короткие сроки. Кажется, что рекурсия не достаточно быстрая ...

1 Ответ

0 голосов
/ 04 мая 2020

Вы вычисляете

            int[] yell = computePT(k-1);

в l oop. Перемещение его до l oop должно улучшить производительность

...