public class Solution {
public List
> generate(int numRows) {
List
> res = new LinkedList
>(); if(numRows <= 0) return res; res.add(geCurRow(1, null)); if(numRows == 1){ return res; } res.add(geCurRow(2, null)); if(numRows > 2){ for(int i = 3; i <= numRows; i++){ res.add(i-1, geCurRow(i, (List
)res.get(i-2))); } } return res; } public List
geCurRow(int curRow, List
preRow){ List li = new LinkedList(); switch(curRow){ case 1: li.add(1); break; case 2: { li.add(1); li.add(1); break; } case 3:{ li.add(1); li.add(2); li.add(1); break; } default:{ li.add(0, 1); li.add(1, curRow-1); li.add(2, curRow-1); li.add(3, 1); int i; for(i = 2; i < curRow/2; i++){ Integer tp = preRow.get(i) + preRow.get(i-1); li.add(i, tp); li.add(i+1, tp); } if(curRow % 2 != 0) li.add(i, preRow.get(i)*2); } } return li; } }
118Pascal'sTriangle.c
最新推荐文章于 2020-09-23 15:29:32 发布