Loading

Leetcode-119-杨辉三角第n行

题目链接


题目描述

输出杨辉三角第 n 行。
下标从 0 开始。

要求

时间复杂度 O(n)
n 最大为 33.

思路

  1. \(O(n^2)\), 从第0行开始递推。

  2. \(O(n)\), 直接计算第 n 行,利用公式, 递推计算第 n 行 第 i 个元素。
    \(a[n][i] = C_{n}^{i}=C_{n}^{i-1}\frac{n-i+1}{m}\)

  3. 注意:公式中的乘法运算可能会超 int 的范围。


C++代码

class Solution {
public:
    vector<int> getRow(int n) { // 计算第 n 行,下标均从 0 开始
        vector<int> rown;
        rown.push_back(1);
        for (int i = 1; i <= n; i++) 
            rown.push_back((long long)rown[i-1] * (n-i+1) / i );
        return rown;
    }
};
posted @ 2022-01-11 21:07  ARUI丶  阅读(50)  评论(0编辑  收藏  举报