【数组】118. 杨辉三角

题目:

 

 

解答:

杨辉三角即该位置的值为左上角与右上角的和,注释很清楚了(note for self数组初始化方法)。

 1 class Solution {
 2 public:
 3     vector<vector<int>> generate(int numRows) 
 4     {
 5         vector<vector<int>> ans(numRows);
 6         if(numRows == 0)    
 7         {
 8             return ans; //若numRows为空,返回空数组
 9         }
10         
11         // 给数组一个个赋值
12         for(int i = 0; i < numRows; ++ i ) 
13         {
14             for(int j = 0; j <= i; ++ j)
15             {
16                 // 若是左右两边的边界,赋值为1
17                 if(j == 0 || j == i) 
18                 {
19                     ans[i].push_back(1);
20                 }
21                 else
22                 {
23                     // 否则赋值为该位置左上与右上的和
24                     ans[i].push_back(ans[i-1][j-1] + ans[i-1][j]); 
25                 }
26             }
27         }
28         return ans;
29     }
30 };

 

posted @ 2020-05-04 16:19  梦醒潇湘  阅读(137)  评论(0)    收藏  举报