您的位置:首页 > 其它

leetcode 118. Pascal's Triangle(杨辉三角)

2017-08-20 17:20 423 查看
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]
]


简单题一个。

public List<List<Integer>> generate(int numRows) {
List<List<Integer>> result=new ArrayList<List<Integer>>();
if(numRows==0){
return result;
}
List<Integer> list=new ArrayList<Integer>();
list.add(1);
result.add(list);
if(numRows==1){
return result;
}
list=new ArrayList<Integer>();
list.add(1);list.add(1);
result.add(list);
if(numRows==2){
return result;
}
for(int i=3;i<=numRows;i++){
list=new ArrayList<Integer>();
list.add(1);
List<Integer> pre=result.get(i-2);//第i-1个,就是index=i-2
for(int pointer=0;pointer<i-2;pointer++){
list.add(pre.get(pointer)+pre.get(pointer+1));
}
list.add(1);
result.add(list);
}
return result;
}大神也基本上是我这个思路。

calculate element value: K( i )( j ) = K( i-1 )( j-1 ) + K( i-1 )( j )  except for the first and last element
public class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> triangle = new ArrayList<List<Integer>>();
if (numRows <=0){
return triangle;
}
for (int i=0; i<numRows; i++){
List<Integer> row =  new ArrayList<Integer>();
for (int j=0; j<i+1; j++){
if (j==0 || j==i){
row.add(1);
} else {
row.add(triangle.get(i-1).get(j-1)+triangle.get(i-1).get(j));
}
}
triangle.add(row);
}
return triangle;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: