动态数组列大小调整帕斯卡三角形 Java



我想为列调整动态数组大小,下面是我的方法。但是,在迭代 for 循环时,我得到的恒定列大小为 1。

private int[][] res;
private void populate(int i, int j) {
    if(j == 0 || j == i) {
        res[i][j] = 1;
    } else {
        res[i][j] = res[i-1][j-1] + res[i-1][j];
    }
}
public int[][] generate(int n) {
    res = new int[n][];
    // This part, changing i to n gives me constant columns of size n where empty entries are zeros, keeping col size i returns me constant column of size 1
    for(int i = 1; i <= res.length; i++) {
        res[i-1] = new int[i];
    }
    for(int i = 0; i < n; i++) {
        for(int j = 0; j <= i; j++) {
            populate(i,j);
        }
    }
return res;       
}

当 n = 3 时:

期望的输出

           - [ [1],
               [1,1],
               [1,2,1] ]

我的输出与列大小 i

           -  [ [1] ,
                [1],
                [1] ]

我的输出,列大小 = 3 = n

           -  [ [1,0,0] ,
                [1,1,0],
                [1,2,1] ]

如何在不使用 ArrayList 的情况下为数组设置动态列大小

好吧,你的代码当然对我有用:

Test1 t = new Test1();
int[][] rr = t.generate(5);
for (int[] ints : rr) {
    System.out.println("[ " + Arrays.toString(ints) + "]");
}

打印输出:

[ [1]]
[ [1, 1]]
[ [1, 2, 1]]
[ [1, 3, 3, 1]]
[ [1, 4, 6, 4, 1]]

最新更新