我正在尝试生成列表列表以返回帕斯卡三角形

时间:2019-03-01 02:17:40

标签: java list arraylist 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;
    }
}

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

可悲的是,11的幂直到第5行为止,由于重新组合而在此处结束(有10,所以它“携带”)。

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

您可以采用不同的方法来打印帕斯卡三角形。

Optimize Way of finding pascal triangle: