给定索引k,返回Pascal三角形的第k行。例如,给定k = 3,返回[1,3,3,1]。

来源:互联网 发布:剑网三重制版 知乎 编辑:程序博客网 时间:2024/05/17 01:03

暴力解决 :

构造Pascal三角返回第K行

    vector<int> getRow(int rowIndex) {        vector<int> result;        int a[rowIndex+1][rowIndex+1];        //构造Pascal三角        for(int i=0;i<=rowIndex;i++){            for(int j=0;j<=i;j++){                if(j==0||j==i){                    a[i][j]=1;                }else{                    a[i][j]=a[i-1][j-1]+a[i-1][j];                }            }        }        for(int i=0;i<=rowIndex;i++){            result.push_back(a[rowIndex][i]);        }        return result;    }

构造Pascal三角形:

   vector<vector<int> > generate(int numRows) {        vector<vector<int>> a;              if(numRows==0)            return a;        for(int i=0;i<numRows;i++){            vector<int> temp(i+1,1);            for(int j=1;j<i;j++){                temp[j]=a[i-1][j]+a[i-1][j-1];            }            a.push_back(temp);        }        return a;    }

第二 : 大神思路:

    vector<int> getRow(int rowIndex) {        vector<int> result(rowIndex+1,1);        for(int i=2;i<=rowIndex;i++){            for(int j=i-1;j>0;j--){result[j] += result[j-1];            }        }        return result;    }


阅读全文
0 0