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

]

产生杨辉三角,比较简单,注意几个边界条件:
 1 class Solution {

 2 public:

 3     vector<vector<int> > generate(int numRows) {

 4         vector<int> vi;

 5         vector<vector<int> > ans;

 6         int i,j;

 7         vi.push_back(1);

 8         ans.clear();   // 注意初始化

 9         if(numRows<=0) return ans;

10         if(1==numRows)

11         {

12             ans.push_back(vi);

13             return ans;

14         }

15         if(2==numRows)

16         {

17             ans.push_back(vi);

18             vi.push_back(1);

19             ans.push_back(vi);

20             return ans;

21         }

22 

23         ans.push_back(vi);

24         vi.push_back(1);

25         ans.push_back(vi);

26         for(i=2;i<numRows;i++)

27         {

28             vi.clear();

29             vi.push_back(1);

30             for(j=1;j<i;j++)

31             {

32                 vi.push_back(ans[i-1][j-1]+ans[i-1][j]);

33             }

34             vi.push_back(1);

35             ans.push_back(vi);

36         }

37         return ans;

38     }

39 };

 转载请注明出处: http://www.cnblogs.com/double-win/ 谢谢!

你可能感兴趣的:(LeetCode)