题目:给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数就是左上方和右上方数的和。
import java.util.ArrayList;
import java.util.List;public class Test {public static List<List<Integer>> generate(int numRows){List<List<Integer>> ret=new ArrayList<>();List<Integer> list0=new ArrayList<>();list0.add(1);ret.add(list0);for (int i=1;i<numRows;i++){List<Integer> curRow=new ArrayList<>();curRow.add(1);List<Integer> preRow=ret.get(i-1);for (int j=1;j<i;j++){int val1=preRow.get(j);int val2=preRow.get(j-1);curRow.add(val1+val2);}curRow.add(1);ret.add(curRow);}return ret;}public static void main(String[] args) {List<List<Integer>> ret=generate(4);for (int i=0;i<ret.size();i++){for (int j=0;j<ret.get(i).size();j++){System.out.print(ret.get(i).get(j)+" ");}System.out.println();}}
}
运行结果: