杨辉三角

杨辉三角
首先我们知道杨辉三角的定义:杨辉三角中 每个数是他左上方和右上方数的和,并且每一行的长度
等于行数本身
也就是说 处于第i行的第j个元素 等于第i减一行第j和j-1个元素之和(首尾除外)那归纳一下

我们要实现的就是首尾单独的设元素值为1

每一行根据上一行的结果得出 

第一个数组:

List<list<Integer>> answer=new ArrayList<>();
if(numRows <1) return answer;
answer.add(new ArrayList<>());
answer.get(0).add(1);//给这个成员为数组的answer数组的第一个数组添加固定的值1(即第一个输出的数组固定为{1}。

然后是有统一规律的中间数组,注意每个数组的首尾要单独处理

for(int i=0;i<numRows;i++){
ArrayList<Integer> row=new ArrayList<Integer>();
row.add(1);
List<Integer> lastRow=answer.get(i-1);//通过get(i-1)方法得到上一行数组的值
for(int j=1;j<i;j++){
row.add(lastRow.get(j-1)+lastRow.get(j));//一般采用j-1而不是j+1防止数组越界
}
row.add(1);
answer.add(row);
}

接下来把answer返回就完成了

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值