给定一个非负整数 num ,生成杨辉三角的前 num 行。
杨辉三角中,每个数是左上方和右上方的数之和。
数据范围: 
例如当输入为4时,对应的返回值为[[1],[1,1],[1,2,1],[1,3,3,1]],打印结果如下图所示:
public int[][] generate (int num) {
// write code here
int[][] arr = new int[num][];
for (int i = 0; i < num; i++) {
arr[i]=new int[i+1];
for (int j = 0; j <= i; j++) {
if (j == 0 || i == j) {
arr[i][j] = 1;
}else{
int a = arr[i - 1][j - 1];
int b = arr[i - 1][j];
arr[i][j] = a + b;
}
}
}
return arr;
} public int[][] generate (int num) {
// write code here
int[][] dp = new int[num][];
// dp[0] = new int[]{1};
for(int i=0;i<num;i++){
int[] cur = new int[i+1];
for(int j=0;j<i+1;j++){
if(j==0||j==i)
cur[j]=1;
else cur[j] = dp[i-1][j-1]+dp[i-1][j];
}
dp[i] = cur;
}
return dp;
}
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* @param num int整型
* @return int整型二维数组
*/
public int[][] generate (int num) {
// write code here
int[][]arr =new int[num][];
for(int i=0;i<num;i++){
arr[i]=new int[i+1];
for(int j=0;j<i+1;j++){
if(j!=0&&j!=i){
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}else{
arr[i][j]=1;
}
}
}
return arr;
}
} public int[][] generate(int num) {
// write code her
int[][] dp = new int[num][];
for (int i = 0; i < num; i++) {
dp[i] = new int[i+1];
for (int j = 0; j < dp[i].length; j++) {
dp[i][j] = 1;
}
for (int j = 1; j < dp[i].length -1; j++) {
dp[i][j] = dp[i-1][j-1] + dp[i-1][j];
}
}
return dp;
} public int[][] generate (int num) {
int[][] arr=new int[num][];
for(int i=0;i<num;i++) {
arr[i]=new int[i+1];
for(int j=0;j<arr[i].length;j++) {
if(i==0||j==0||j==arr[i].length-1)
arr[i][j]=1;
else
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
return arr;
} import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param num int整型
* @return int整型二维数组
*/
public int[][] generate (int num) {
// write code here
if(num == 1){
return new int[][]{{1}};
}else if(num == 2){
return new int[][]{{1}, {1, 1}};
}else{
ArrayList<List<Integer>> lists = new ArrayList<>();
// 先加入前两层
List<Integer> layer = new ArrayList<>();
layer.add(1);
lists.add(new ArrayList<>(layer));
layer.add(1);
lists.add(new ArrayList<>(layer));
for(int i = 2; i <= num; i++){
List<Integer> lastLayer = lists.get(i - 1);
layer = new ArrayList<>();
layer.add(1);
for(int k = 1; k < i; k++){
layer.add(lastLayer.get(k) + lastLayer.get(k - 1));
}
layer.add(1);
lists.add(new ArrayList<>(layer));
}
// 把列表结果转成二维数组
int[][] res = new int[num][];
for(int i = 0; i < num; i++){
res[i] = new int[i + 1];
for(int k = 0; k < lists.get(i).size(); k++){
res[i][k] = lists.get(i).get(k);
}
}
return res;
}
}
}