LeetCode 118. Pascal's Triangle

来源:互联网 发布:云南省贫困人口数据 编辑:程序博客网 时间:2024/06/11 19:04

118. 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]]

三、解题思路

  • 对于输入为0,1,2这三种情况我单独处理的
  • 对于>=3的情况,下一行需要上一行的信息来生成,line[j] = lastLine[j-1] + lastLine[j] 然后首尾两端各有个1
class Solution {public:    vector<vector<int>> generate(int numRows) {        vector<vector<int>> ret;        if(numRows == 0){            return ret;        }        else if(numRows == 1) {            ret.push_back(vector<int>(1, 1));            return ret;        } else if(numRows == 2){            ret.push_back(vector<int>(1, 1));            ret.push_back(vector<int>(2, 1));            return ret;        }        //numRows >= 3        ret.push_back(vector<int>(1, 1));        ret.push_back(vector<int>(2, 1));        for (int i = 2; i < numRows; ++i) {            vector<int> line;            vector<int> lastLine = ret[i-1];            line.push_back(1);            for (int j = 1; j <= (i-1); ++j) {                line.push_back(lastLine[j-1] + lastLine[j]);            }            line.push_back(1);            ret.push_back(line);        }        return ret;    }};
原创粉丝点击