我正在尝试生成 return 帕斯卡三角形的列表列表

I am trying to generate list of lists to return pascals triangle

我正在尝试使用 11 的幂生成帕斯卡三角形,但它只能工作到 4,而在 4 之后需要修改代码以实现三角形的更多部分。任何答案的线索(如果可能通过此方法)表示赞赏。

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> a = new ArrayList<List<Integer>>();
        for (int i = 0; i < numRows; i++) {
            List<Integer> b = new ArrayList<Integer>(i);
            int c = (int) (Math.pow(11, i));
            while (c > 0) {
                int d = c % 10;
                b.add(d);
                c = c / 10;
            }
            a.add(b);
        }
        return a;
    }
}

您正在以相反的顺序将数字添加到 ArrayList,因此在将内部列表添加到外部列表之前,只需将其反转即可。

while (c > 0) {
    int d = c % 10;
    b.add(d);
    c = c / 10;
}
Collections.reverse(b);
a.add(b);

可悲的是,11 的幂一直到第 5 行,并且由于重新组合而在那儿结束(有一个 10,所以它 "carries")。

例如: 期望 11^5 = 1|5|10|10|5|1 但我们得到 11^5 = 161051

您可以按照不同的方法打印帕斯卡三角形。

Optimize Way of finding pascal triangle: