杨辉三角
题目描述
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
分析
根据上面那个图,我们可以发现,第一行和第二行都由1组成。其他行的起始和结束都是1.内容由上一行相邻两个数组和组成。由此我们可以写出代码。
贴出代码
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
if(numRows == 0)
return res;
for(int j = 0;j<numRows;j++) {
List<Integer> row = new ArrayList<Integer>();
row.add(1);
for(int i = 1;i<j;i++) {
List<Integer> prevRow = res.get(j-1);
int temp = prevRow.get(i-1)+prevRow.get(i);
row.add(temp);
}
if(j!=0)
row.add(1);
res.add(row);
}
return res;
}
}

更多精彩