118. Pascal's Triangle

1. 问题描述

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]
]
Tags:Array
Similar Problems:(E) Pascal's Triangle II

2. 解题思路


3. 代码

class Solution {
public:
    vector<vector<int>> generate(int numRows)
    {
        vector<vector<int>> vResult;
        vector<int> vCurRow;
        vector<int> vLastRow;
        if (numRows <= 0)
        {
            return vResult;
        }
        if (1 <= numRows)
        {
            vCurRow.push_back(1);
            vResult.push_back(vCurRow);
        }

        if (2 <= numRows)
        {
            vCurRow.push_back(1);
            vResult.push_back(vCurRow);
        }
        vLastRow = vCurRow;

        if (3 <= numRows)
        {
            for (int i=3; i<=numRows; i++)
            {
                vCurRow.clear();
                for (int j=0; j<i; j++)
                {
                    if (0 == j)
                    {
                        vCurRow.push_back(1);
                    }
                    else if (i-1 == j)
                    {
                        vCurRow.push_back(1);
                    }
                    else
                    {
                        int num = vLastRow[j-1] + vLastRow[j];
                        vCurRow.push_back(num);
                    }
                }
                vResult.push_back(vCurRow);
                vLastRow = vCurRow;
            }
        }

        return vResult;
    }
};

4. 反思

原文地址:https://www.cnblogs.com/whl2012/p/5844067.html