leetcode118~Pascal's Triangle

来源:互联网 发布:hadoop 1T数据 编辑:程序博客网 时间:2024/05/22 12:13

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 class PascalTriangle {    public List<List<Integer>> generate(int rowNums) {        //使用集合(与一维数组实现有相似)        List<List<Integer>> res = new ArrayList<>();        List<Integer> row = new ArrayList<>();        for(int i=0;i<rowNums;i++) {            row.add(0, 1);            for(int j=1;j<i;j++) {                row.set(j, row.get(j)+row.get(j+1));            }            //这里重更新建立新的集合,防止覆盖            res.add(new ArrayList<>(row));        }        return res;    }    //使用二维数组    public List<List<Integer>> generate2(int rowNums) {        List<List<Integer>> res = new ArrayList<>();        if(rowNums==0) return res;        int[][] arr = new int[rowNums][rowNums];        //初始化        for(int i=0;i<rowNums;i++) {            arr[i][0]=1;            arr[i][i]=1;        }        for(int i=2;i<rowNums;i++) {            for(int j=1;j<i;j++) {                arr[i][j] = arr[i-1][j-1]+arr[i-1][j];            }        }        for(int i=0;i<arr.length;i++) {            List<Integer> list = new ArrayList<>();            for(int j=0;j<=i;j++) {                list.add(arr[i][j]);            }            res.add(list);        }        return res;    }}
0 0
原创粉丝点击