网站seo工作内容,公司网站优化去哪里学,有教人做衣服的网站,哪个网站可以自己做行程给定一个非负整数 numRows#xff0c;生成杨辉三角的前 numRows 行。
在杨辉三角中#xff0c;每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]
]解法
思路1#xff1a;循环遍历
public ListListInteger生成杨辉三角的前 numRows 行。
在杨辉三角中每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]
]解法
思路1循环遍历
public ListListInteger generate(int numRows) {ListListInteger res new ArrayListListInteger();if(numRows1) {return res;}ListInteger list new ArrayListInteger();list.add(1);res.add(list);for(int i2;inumRows;i) {ListInteger pre res.get(res.size()-1);ListInteger cur new ArrayListInteger();for(int j0;ji;j) {if(j0) {cur.add(pre.get(0));}else if (j i-1) {cur.add(pre.get(pre.size()-1));}else {cur.add(pre.get(j-1)pre.get(j));}}res.add(cur);}return res;}思路1代码优化
/*** 时间复杂度O(n^2)* 空间复杂度O(n^2)* param numRows* return*/
public ListListInteger generate(int numRows) {ListListInteger res new ArrayListListInteger();if(numRows1) {return res;}res.add(new ArrayListInteger());res.get(0).add(1);for(int i2;inumRows;i) {ListInteger pre res.get(res.size()-1);ListInteger cur new ArrayListInteger();//每一行头总是为1cur.add(1);for(int j1;ji-1;j) {cur.add(pre.get(j-1)pre.get(j));}cur.add(1);//每一行尾总是为1res.add(cur);}return res;}思路2递归
暂时无实现后续补上