1. 题目描述
2. 解题思路
杨辉三角相信大家都已经非常熟悉了,它的规律也很简单,首尾为1,每一位数都是上一行中相邻两位的相加,直接套两个for
循环就完事了,注意只需要特别处理一下n=1的时候。其时间复杂度为O(n²),空间复杂度其实我觉得是O(0) 的,因为没有占用任何除返回值外的存储空间。
3. 代码实现
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> lists = new ArrayList<>();
for (int i = 1; i <= numRows; i++) {
ArrayList<Integer> integers = new ArrayList<>();
integers.add(1);
for (int j = 2; j < i; j++) {
integers.add(lists.get(i - 2).get(j - 2) + lists.get(i - 2).get(j - 1));
}
if (i != 1)
integers.add(1);
lists.add(integers);
}
return lists;
}