杨辉三角
题目介绍
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例 1:
示例 2:
1 2
| 输入: numRows = 1 输出: [[1]]
|
提示:
题目解法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| package algorithm;
import java.util.ArrayList; import java.util.List;
public class PascalsTriangle {
// 边界条件很好算,就是1,其余的不要看三角形,直接顶格对齐,就会发现规律是自己的位置和减一 public List<List<Integer>> generate(int numRows) { List<List<Integer>> ans = new ArrayList<>(); for (int i = 0; i < numRows; i++) { List<Integer> rowTemp = new ArrayList<>(); for (int j = 0; j <= i; j++) { if (j == 0 || j == i) { rowTemp.add(1); } else { List<Integer> lastRow = ans.get(i - 1); rowTemp.add(lastRow.get(j) + lastRow.get(j - 1)); } } ans.add(rowTemp); } return ans; } }
|
打印:
思路:
思路上,其实很简单。一定要懂杨辉三角的原理。