Pascal's Triangle

Q:

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

A:很简单,不描述了。

class Solution {
 public:
  vector<vector<int> > generate(int numRows) {
    // Start typing your C/C++ solution below
    // DO NOT write int main() function
    vector<vector<int> > results;
    if (!numRows) return results;
    vector<int> result;
    result.push_back(1);
    results.push_back(result);
    int level = 2;
    while (level <= numRows) {
      result.resize(level);
      int pre_num = result[0];
      for (int i = 1; i < result.size() - 1; ++i) {
        int tmp = result[i];
        result[i] = pre_num + result[i];
        pre_num = tmp;
      }   
      result.back() = 1;
      results.push_back(result);
      level++;
    }   
    return results;
  }
};

 

posted @ 2013-06-25 18:03  dmthinker  阅读(84)  评论(0)    收藏  举报