Pascal's Triangle

Q: 杨辉三角

A:

1. 左右两端的数都为1

2. 每个数字等于上一行的左右两个数字之和。

3. 每行数字左右对称,由1开始逐渐变大。

4. 第n行的数字有n项。
    vector<vector<int> > generate(int numRows) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        vector<vector<int> > result;
        
        if(numRows<=0)
          return result;
          
        vector<int> set;
        set.push_back(1);
        result.push_back(set);
        
        for(int i=1;i<numRows;i++)
        {
            set.clear();
            for(int j=0;j<=i;j++)
            {
                int num1,num2;
                num1 = ((j==0)? 0: result[i-1][j-1]);
                num2 = ((j==i)? 0: result[i-1][j]);
                set.push_back(num1+num2); 
            }
            result.push_back(set);
        }
        
        return result;
    }

  

posted @ 2013-06-13 20:16  summer_zhou  阅读(135)  评论(0)    收藏  举报