LeetCode第118题 杨辉三角形

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行



在杨辉三角中,每个数是它左上方和右上方的数的和。

 1 class Solution118 {
 2 
 3 
 4   public List<List<Integer>> generate(int numRows) {
 5     List<List<Integer>> res = new ArrayList<>();
 6     if (numRows > 0) {
 7       List<Integer> firstRow = new ArrayList<>();
 8       firstRow.add(1);
 9       res.add(firstRow);
10 
11       for (int currRows = 1; currRows < numRows; currRows++) {
12         List<Integer> currArr = new ArrayList<>();
13         currArr.add(1);   //第一列总为1
14 
15         //currArr[i] = preArr[i-1] + preArr[i]
16         for (int i = 0; i < res.get(currRows - 1).size() - 1; i++) {
17           currArr.add(res.get(currRows - 1).get(i) + res.get(currRows - 1).get(i + 1));
18         }
19         
20         currArr.add(1);   //最后一列总为1
21         res.add(currArr);
22       }
23     }
24     return res;
25   }
26 }

猜你喜欢

转载自www.cnblogs.com/rainbow-/p/10559526.html