[LeetCode] Pascal's Triangle

Pascal's Triangle

Given numRows, generate the first numRows of Pascal's triangle.

For example, given numRows = 5,
Return

[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

解题思路:

模拟方法,逐层实现即可。

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> result;
        
        if(numRows==0){
            return result;
        }
        result.push_back(vector<int>({1}));
        
        for(int i=1; i < numRows; i++){
            result.push_back(vector<int>());
            for(int j=0; j<=i; j++){
                if(j==0 || j==i){
                    result[i].push_back(1);
                }else{
                    result[i].push_back(result[i-1][j-1] + result[i-1][j]);
                }
            }
        }
        
        return result;
    }
};

二次刷题(2015-08-04)

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> result;
        if(numRows<=0){
            return result;
        }
        result.push_back(vector<int>({1}));
        for(int i=1; i<numRows; i++){
            vector<int> item({1});
            for(int j=1; j<i; j++){
                item.push_back(result[i-1][j-1] + result[i-1][j]);
            }
            item.push_back(1);
            result.push_back(item);
        }
        return result;
    }
};


0 条评论

    发表评论

    电子邮件地址不会被公开。 必填项已用 * 标注