我正在尝试生成 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
您可以按照不同的方法打印帕斯卡三角形。
我正在尝试使用 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
您可以按照不同的方法打印帕斯卡三角形。