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]
]
找出规律:
每一行开头、结尾都是1,其余是上一行两两相加组成。
118题是写出全部,119是写出某行
public List<List<Integer>> generate(int n) {
List<List<Integer>> r = new ArrayList<List<Integer>>();
if(n == 0) return r;
List<Integer> tmp = new ArrayList<Integer>();
tmp.add(1);
r.add(tmp);
if(n == 1) return r;
for(int i = 2;i <= n;i++){
List<Integer> t = new ArrayList<Integer>();
List<Integer> last = r.get(i-2);
t.add(1);
for(int j = 1;j < last.size();j++){
t.add(last.get(j)+last.get(j-1));
}
t.add(1);
r.add(t);
}
return r;
}
public List<Integer> getRow(int r) {
List<Integer> re = new ArrayList<Integer>();
if(r < 0) return re;
re.add(1);
if(r == 0) return re;
for(int i = 1;i <= r;i++){
int last = 0;
for(int j = 0;j < re.size();j++){
int tmp = re.get(j)+last;
last = re.get(j);
re.set(j,tmp);
}
re.add(1);
}
return re;
}