119. Pascal's Triangle II

Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle.

Note that the row index starts from 0.


In Pascal's triangle, each number is the sum of the two numbers directly above it.

class Solution {
    public List<Integer> getRow(int rowIndex) {
        return generate(rowIndex + 1).get(rowIndex);
    }
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res = new ArrayList();
        if(numRows == 0) return res;
        res.add(new ArrayList(Arrays.asList(1)));
        for(int i = 2; i <= numRows; i++){
            Integer[] cur = new Integer[i];
            Arrays.fill(cur,1);
           List<Integer> pre = res.get(i-2);
            for(int j = 1; j < i - 1; j++){
                cur[j] = pre.get(j-1) + pre.get(j);
            }
            res.add(new ArrayList(Arrays.asList(cur)));
        }
        return res;
    }
}

直接用上一题的方法

class Solution {
    public  List<Integer> getRow(int rowIndex) {
        List<Integer> ret = new ArrayList<Integer>();
        ret.add(1);
        for (int i = 1; i <= rowIndex; i++) {
            for (int j = i - 1; j >= 1; j--) {
                int tmp = ret.get(j - 1) + ret.get(j);
                ret.set(j, tmp);
            }
            ret.add(1);
        }
        return ret;
    }
}
原文地址:https://www.cnblogs.com/wentiliangkaihua/p/11746362.html