Leetcode-119-杨辉三角第n行
题目链接
题目描述
输出杨辉三角第 n 行。
下标从 0 开始。
要求
时间复杂度 O(n)
n 最大为 33.
思路
-
\(O(n^2)\), 从第0行开始递推。
-
\(O(n)\), 直接计算第 n 行,利用公式, 递推计算第 n 行 第 i 个元素。
\(a[n][i] = C_{n}^{i}=C_{n}^{i-1}\frac{n-i+1}{m}\) -
注意:公式中的乘法运算可能会超 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;
}
};