给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例 2:
输入: numRows = 1
输出: [[1]]
解题思路:这个解题思路很简单,就按照杨辉三角的生成逻辑来相加即可。
从i=0开始循环相加到给定的值numRows,i的值与当前集合的长度相关,j=0开始循环相加到当前的i,当j=0或者j=i时,当前下标的集合元素为0,否则,当前元素等于,上个集合的相同下标和与上个下标元素之和
public List<List<Integer>> generate(int numRows) {List <List<Integer>> yangHuiList = new ArrayList <List<Integer>>();for(int i =0;i<numRows;++i){List<Integer> rowList =new ArrayList <Integer>();for(int j=0;j<=i;++j){if(j==0||j==i){rowList.add(1);}else{rowList.add(yangHuiList.get(i-1).get(j)+yangHuiList.get(i-1).get(j-1));}}yangHuiList.add(rowList);}return yangHuiList;}