[leetcode] 119. 杨辉三角 II

119. 杨辉三角 II

水题,题目有个进阶,要求空间复杂度是O(k),实际上就是时间换空间的做法。把问题的解法给成从下而上,递归即可。

懒得写递归了,直接套用上题

class Solution {
    public List<Integer> getRow(int rowIndex) {
        return generate(rowIndex+1).get(rowIndex);
    }

    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ans = new ArrayList<>();

        for (int i = 0; i < numRows; i++) {
            List<Integer> list = new ArrayList<>();
            ans.add(list);
            for (int j = 0; j < i + 1; j++) {
                if (i > 1 && j > 0 && j != i) {
                    list.add(ans.get(i - 1).get(j - 1) + ans.get(i - 1).get(j));
                } else {
                    list.add(1);
                }
            }
        }

        return ans;
    }
}

posted @ 2018-11-06 23:03  ACBingo  阅读(235)  评论(0编辑  收藏  举报