LeeCode题目笔记

2019-08-30 杨辉三角 II

2019-09-28  本文已影响0人  Antrn

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。

杨辉三角动态图

在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:
输入: 3
输出: [1,3,3,1]

进阶:
你可以优化你的算法到 O(k) 空间复杂度吗?

C++
class Solution {
public:
    vector<int> getRow(int rowIndex) {
        return generate(rowIndex+1).back();
    }
    vector<vector<int>> generate(int numRows) {
        if(numRows == 0) return {};
        vector<vector<int>> matrix;
        for(int i=0;i<numRows;i++){
            vector<int> row;
            for(int j=0;j<i+1;j++){
                if(i == j || j == 0){
                    row.push_back(1);
                }
                else{
                    row.push_back(matrix[i-1][j-1]+matrix[i-1][j]);
                }
            }
            matrix.push_back(row);
        }
        return matrix;
    }
};
C++2 【妙啊】
class Solution {
public:
    vector<int> getRow(int rowIndex) {
        vector<int> res(rowIndex+1,0);
        res[0]=1;
        for(int i=1;i<rowIndex+1;i++)
        {
            for(int j=i;j>=1;j--)
                res[j]+=res[j-1];
        }
        
        return res;
    }
};
上一篇 下一篇

猜你喜欢

热点阅读