Pascal's Triangle Java

来源:互联网 发布:淘宝美工私活 编辑:程序博客网 时间:2024/06/05 23:50

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;    }}


0 0