LeetCode118:杨辉三角
代码如下
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> dp(numRows);
vector<int> temp(numRows);
for (int i = 0; i < numRows; i++)
{
dp[i].resize(i + 1);
dp[i][0] = 1;
dp[i][i] = 1;
}
for (int i = 2; i < numRows; i++)
{
for (int j = 1; j < i; j++)
{
dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
}
}
return dp;
}
};
代码讲解:这个题目没有任何难度,就是推到公式,当第三行的时候就需要上面的两个相加,递推公式也就是dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j], 重点,二维vector开拓三角形数组需要 dp[i].resize(i + 1);也就是第1行开1个单位数组,第2行开2个单位的数组,以此类推。最后的形状是个上三角形。
二维数组长这样。
感悟:最搞笑的是我就坏到怎么处理这个上三角的问题,真的是,唉,吃一只长一智。
原文地址:https://blog.csdn.net/Ricky_youngone/article/details/142393333
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!