Given a non-negative integer numRows, generate the first numRows of Pascal’s triangle.
题解:
package com.leetcode;
import java.util.*;
public class PascalTriangle {
public static void main(String[] args) {
List<List<Integer>> ans = generate(5);
for (int i = 0; i < ans.size(); i++) {
for (int j = 0; j < ans.get(i).size(); j++)
System.out.print(ans.get(i).get(j) + " ");
System.out.println();
}
}
public static List<List<Integer>> generate(int numRows) {
List<List<Integer>> ans = new ArrayList<List<Integer>>();
for (int i = 1; i <= numRows; i++) {
if (i == 1) {
List<Integer> currRow = new ArrayList<Integer>();
currRow.add(1);
ans.add(currRow);
} else if (i == 2) {
List<Integer> currRow = new ArrayList<Integer>();
currRow.add(1);
currRow.add(1);
ans.add(currRow);
} else {
List<Integer> currRow = new ArrayList<Integer>();
List<Integer> prevRow = ans.get(i - 2);
for (int j = 0; j < prevRow.size(); j++) {
if (j == 0)
currRow.add(1);
else
currRow.add(prevRow.get(j) + prevRow.get(j - 1));
}
currRow.add(1);
ans.add(currRow);
}
}
return ans;
}
}