题目:
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5 ,
Return
[
[1 ],
[1 ,1 ],
[1 ,2 ,1 ],
[1 ,3 ,3 ,1 ],
[1 ,4 ,6 ,4 ,1 ]
]
思路
题意是要用数组表示帕斯卡三角形 输入一个数值,显示相应行数的【帕斯卡三角形 根据下一行和上一行的递推公式来处理 设置一个变量fisrt来记录上一行的数据,最新一行的是新建的 -
代码
public class Solution {
public List < List < Integer >> generate(int numRows) {
List < List < Integer >> all = new ArrayList< List < Integer >> ();
List < Integer > first = new ArrayList< Integer > ();
if (numRows == 0 ){
return all ;
}
if (numRows == 1 ){
List < Integer > a1 = new ArrayList< Integer > ();
a1. add(1 );
all . add(a1);
return all ;
}
if (numRows > 1 ){
List < Integer > a2 = new ArrayList< Integer > ();
a2. add(1 );
all . add(a2);
}
for(int i = 1 ;i < numRows;i++ ){
List < Integer > next = new ArrayList< Integer > ();
next. clear();
next. add(1 );
for(int a = 1 ;a < i;a++ ){
if (a- 1 >= 0 )
next. add(first. get(a- 1 )+ first. get(a));
}
next. add(1 );
all . add(next);
first. clear();
if (next != null ){
for(int o = 0 ;o < next. size();o++ ){
first. add(next. get(o));
}
}
}
return all ;
}
}