杨辉三角-动态规划

43 阅读1分钟
// 杨辉三角-动态规划  
// 输入: numRows = 5  
// 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]  
public static List<List<Integer>> generate(int numRows){  
    List<List<Integer>> ret=new ArrayList<List<Integer>>();  
    for (int i = 0; i <numRows ; i++) {  
    List<Integer> row=new ArrayList<Integer>();  
    for (int j = 0; j <=i ; j++) {  
        if(j==0||j==i){  
            //自底向上  
            //[i][j]==1  
            row.add(1);  
        }else{  
            //[i][j]=[i-1][j-1]+[i-1][j]  
            row.add(ret.get(i-1).get(j-1)+ret.get(i-1).get(j));  
            }  
        }  
        ret.add(row);  
    }  
    return ret;  
}