[LeetCode] 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> > res;
        res.resize(numRows);
        for(int i = 0; i < numRows; i++)
            res[i].assign(i + 1, 1);
        for(int i = 1; i < numRows; i++)
        {
            for(int j = 1; j < i; j++)
                res[i][j] = res[i-1][j-1] + res[i-1][j];
        }
        return res;
    }
};

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


你可能感兴趣的:([LeetCode] Pascal's Triangle)