杨辉三角
1、给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
2、在杨辉三角中,每个数是它左上方和右上方的数的和。
方法1:动态规划(迭代)
时间复杂度:O(N^2)
/**
* 生成杨辉三角:在杨辉三角中,每个数是它左上方和右上方的数的和。
* 除第一行,每行除了头尾元素和结尾元素为1外,中间位置j的元素等于前一行j-1和j位置的元素之和。
* 用一个pre队列保存前一行元素,依次遍历生成杨辉三角。
* @param numRows
* @return
*/
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> ret = new ArrayList<List<Integer>>();
if (numRows <1){
return ret;
}
List<Integer> row = new ArrayList<Integer>();
row.add(1);
ret.add(row);
for(int i =1;i<numRows;i++){
//当前行
List<Integer> rowi = new ArrayList<Integer>()