C++ 杨辉三角
已知每行第一个和最后一个元素的值为1,其他元素的值是左上方和右上方的元素的值之和。
//生成num行杨辉三角(num以1开始) vector<vector<int>> generate(int num) { vector<vector<int>> result;//缓存结果 for (int i = 0; i < num; ++i) { vector<int> temp(i + 1, 1); for (int j = 1; j < i; j++)//生成当前行 { temp[j] = result[i - 1][j - 1] + result[i - 1][j]; } result.emplace_back(std::move(temp)); } return result; } //取杨辉三角的第num行(num以0开始) vector<int> getRow(int num) { vector<int> result;//缓存上一行 for (int i = 0; i <= num; ++i) { vector<int> temp(i + 1, 1); for (int j = 1; j < i; j++) { temp[j] = result[j - 1] + result[j]; } result = std::move(temp); } return result; }