problems: add pascals triangle

Signed-off-by: Matej Focko <mfocko@redhat.com>
This commit is contained in:
Matej Focko 2022-07-19 16:26:56 +02:00
parent d1e2d4a9cf
commit 123c4ef5d7
Signed by: mfocko
GPG key ID: 7C47D46246790496

View file

@ -0,0 +1,30 @@
class Solution {
int getN(const vector<int>& previousRow, int n)
{
if (n == 0 || n == previousRow.size()) {
return 1;
}
return previousRow[n - 1] + previousRow[n];
}
public:
vector<vector<int>> generate(int numRows)
{
if (numRows <= 0) {
return {};
}
vector<vector<int>> result { vector<int> { 1 } };
for (auto i = 2; i <= numRows; i++) {
auto& previous = result.back();
vector<int> current;
for (auto j = 0; j < i; j++) {
current.push_back(getN(previous, j));
}
result.push_back(move(current));
}
return result;
}
};