欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

杨辉三角

程序员文章站 2022-03-07 15:11:48
...

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

在杨辉三角中,每个数是它左上方和右上方的数的和。

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ret=new ArrayList<>();
        for (int i = 0; i <numRows; i++) {
            List<Integer> Row=new ArrayList<>();
            //设置当前Row行的数据
            for (int j = 0; j <=i; j++) {
                if(j==0||i==j){
                    //在使用set(index,element)向ArrayList中设置元素时,index必须在size                         ()范围内,(不能越界)
//                    Row.set(j,1);//Row行的满足j==0或者j==i的值都设置为1
                Row.add(1);//尾插法
                }else{
//                    Row.set(j,0);
                    Row.add(0);
                }
            }
            ret.add(Row);
        }
        //设置其他位置的数据
        for (int i = 2; i <numRows ; i++) {
            //当前行
            List<Integer> cur=ret.get(i);
                    //前一行
            List<Integer> pre=ret.get(i-1);
            for (int j = 1; j <i ; j++) {
                cur.set(j,pre.get(j)+pre.get(j-1));
            }
        }
     return ret;
    }
}

List杨辉三角

相关标签: 编程