给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
https://leetcode-cn.com/problems/pascals-triangle/
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例1:
Java解法
package sj.shimmer.algorithm.m3_2021;
import java.util.ArrayList;
import java.util.List;
/**
* Created by SJ on 2021/3/26.
*/
class D58 {
public static void main(String[] args) {
List<List<Integer>> generate = generate(5);
for (List<Integer> list : generate) {
System.out.println(list);
}
}
public static List<List<Integer>> generate(int numRows) {
List<List<Integer>> results = new ArrayList<>();
if (numRows>0) {
List<Integer> next = new ArrayList<>();
next.add(1);
results.add(next);
for (int i = 1; i < numRows; i++) {
List<Integer> temp = next;
next = new ArrayList<>();
int left = 0;
int right = 0;
for (int j = 0; j < temp.size(); j++) {
right = temp.get(j);
next.add(left+right);
left = right;
}
next.add(1);
results.add(next);
}
}
return results;
}
}
官方解
-
数学
时间复杂度:O(num^2)
空间复杂度:O(1)