java-输出前n行的杨辉三角

List<List >
套娃的感觉

ArrayList类:可动态修改的数组

经试验,i++与++i没有区别

j从1开始,相当于每一行从第二个元素开始,其数值等于上一行两个之和

public class Solution {
    /**
     * @param n: a Integer
     * @return: the first n-line Yang Hui's triangle
     */
    public List<List<Integer>> calcYangHuisTriangle(int n) {
        List<List<Integer> > res = new ArrayList<>();
        int i, j;
        if (n == 0) {
            return res;
        }
        
        for (i = 0; i < n; i++) {
            List<Integer> t = new ArrayList<Integer>();
            t.add(1);   
            for (j = 1; j < i; j++) {
                //j从1开始,相当于每一行从第二个元素开始,其数值等于上一行两个之和
                t.add(res.get(i - 1).get(j - 1) + res.get(i - 1).get(j));    
            }
            
            if (i > 0) {
                //每一行的第一个元素都是1
                t.add(1);
            }
            
            res.add(t);
        }
        
        return res;
    }
}
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享