题目:
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]
]
题意及分析:给出一个杨辉三角的前numRow行。题比较简单,直接产生每一行,然后添加进去即可,每一行的第一个数为1,第二行开始最后一个数也为1,中间的数由上一行产生。
代码:
class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> result = new ArrayList<>(); for(int i=1;i<=numRows;i++){ List<Integer> list = new ArrayList<>(); list.add(1); //每行第一个数为1 List<Integer> preRowList = new ArrayList<>(); //取出上一行数据 if(result.size()>1) preRowList = result.get(result.size()-1); for(int k=1;k<i-1;k++){ //长生每行中间的数 list.add(preRowList.get(k-1)+preRowList.get(k)); } if(i>=2) //第二行开始每一行最后都为1 list.add(1); result.add(list); } return result; } }
Seen this question in a real inte