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 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据