您的位置:首页 > 编程语言 > Java开发

Pascal's Triangle Java

2014-08-29 10:40 260 查看
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]
]


Have you been asked this question in an interview? 
 Pascal's Triangle

    ArrayList pre: Number in previous level

    loop i: start from 2 since 1st level only contain 1 element

    ArrayList cur: Number in current level

    loop j: generate numbers for cur

public class Solution {
public ArrayList<ArrayList<Integer>> generate(int numRows) {
ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
if(numRows==0) return res;
ArrayList<Integer> prev=new ArrayList<Integer>();
//top level
prev.add(1);
res.add(prev);
//start from level2
for(int i=2;i<=numRows;i++){
int size=prev.size();
ArrayList<Integer> curr=new ArrayList<Integer>();
curr.add(1);
for(int j=0;j<size-1;j++){
//calculate form internal number
curr.add(prev.get(j)+prev.get(j+1));
}
curr.add(1);
prev=curr;
res.add(prev);
}
return res;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: