数据结构 杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列,每个数等于它上方两数之和。


用数据结构来实现杨辉三角

class Solution{
    public List<List <Integer>> generate(int Rew){

        List<List<Integer>>ret=new ArrayList<>();

        List<Integer>list=new ArrayList<>();

        list.add(1);

        ret.add(list);

        for (int i = 1; i < Rew; i++) {

            List<Integer>curRew=new ArrayList<>();

            curRew.add(1);

            List<Integer>preRew=ret.get(i-1);

            for (int j = 1; j < i; j++) {

                int val=preRew.get(j)+preRew.get(j-1);

                curRew.add(val);

                curRew.add(1);

                ret.add(curRew);
            }

        }

        return ret;
    }
}

1、首先定义一个多维数组:

public List<List <Integer>> generate(int Rew){ //Integer类型的二维数组,Rew表示行数

    List<List<Integer>>ret=new ArrayList<>();

2、创建第一行List数组:

List<Integer>list=new ArrayList<>();

list.add(1);//在数组中添加一个1

ret.add(list);//将List数组加入多维数组中

3、创建第二行至最后一行

for (int i = 1; i < Rew; i++) {//从第二行到Rew-1行

        List<Integer>curRew=new ArrayList<>();//创建curRew数组,根据for循环,创建多个数组

        curRew.add(1); //每行第一个元素都是1

            List<Integer>preRew=ret.get(i-1); //获取上一行

            for (int j = 1; j < i; j++) {

                int val=preRew.get(j)+preRew.get(j-1);

                //除第一个和最后一个元素,其余都为上一行的列为j和前一个j-1的元素相加

                curRew.add(val);//将元素放入数组中

                curRew.add(1);//最后一个元素为1

                ret.add(curRew);//添加到多维数组中
            }

        }

        return ret;//返回ret
    }
}

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值