weixin_43306709 2022-04-02 09:03 采纳率: 77.3%
浏览 22
已结题

我觉得这道杨辉三角思路应该是这样的,就是用动态规划,但感觉里面错误不少,有没有朋友愿意看一下啊。

问题遇到的现象和发生背景

https://leetcode-cn.com/problems/pascals-triangle/solution/

问题相关代码,请勿粘贴截图
class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        int i = numRows;
        int j = numRows;
        int dp[i][j];               //代表的是第i行第j列的元素是多少
        vector<vector<int>> st;
        vector<int> s;
        for(int i = 0;i<numRows;i++)
            dp[i][0] = 1;

        for(int j = 0;j<numRows;j++)
            dp[j][j+1] = 0;

        for(int i = 1;i<=numRows;i++){
            for(int j = 1;j<=i+1;j++){
                dp[i][j] = dp[i-1][j-1] + dp[i-1][j];
                s.push_back(dp[i,j]);
            }
            st.push_back(s);
        }
        return st;
    }
};

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • Dana_ranmo 2022-04-02 09:26
    关注

    按照你的代码改的,有什么看不懂的再问我

    
    #include<iostream>
    #include<vector>
    using namespace std;
    vector<vector<int>> generate(int numRows) {
    
        //int i = numRows;
    
        //int j = numRows;
    
        vector<vector<int>> dp(numRows+1,vector<int>(numRows+1));               //代表的是第i行第j列的元素是多少
    
        vector<vector<int>> st;
    
        
    
        for (int i = 0; i<=numRows; i++)
    
            dp[i][0] = 1;
    
    
    
        for (int j = 0; j<numRows; j++)
    
            dp[j][j + 1] = 0;
    
        st.push_back({ 1 });
    
        for (int i = 1; i <= numRows; i++) {
            vector<int> s;
            s.push_back(dp[i][0]);
            for (int j = 1; j <= i; j++) {
    
                dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
    
                //s.push_back(dp[i, j]);
                s.push_back(dp[i][j]);
    
            }
    
            st.push_back(s);
    
        }
    
        return st;
    
    }
    
    int main()
    {
        vector<vector<int>> ans = generate(5);
        for (size_t i = 0; i < ans.size(); ++i) {
            for (size_t j = 0; j < ans[i].size(); ++j) {
                cout << ans[i][j] << " ";
            }
            cout << endl;
        }
        system("pause");
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 创建了问题 4月2日

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?