代码改变世界

Pascal's Triangle

2015-03-16 14:17  笨笨的老兔子  阅读(187)  评论(0编辑  收藏  举报

输入一个整数n,打印一个n行的杨辉三角

帕斯卡三角也叫杨辉三角,每一行的第一个和最后一个都是1,其他数字的递推式是a[n][i]=a[n-1][i-1]+a[n-1][i]
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]

注意点

  • 输入数字是int需要是自然数
  • 每一行的首尾都push整数1
  1. class Solution {
  2. public:
  3. vector<vector<int> > generate(int numRows) {
  4. vector<vector<int> >res;
  5. if (numRows <= 0)
  6. return res;
  7. vector<int> firstRow;
  8. firstRow.push_back(1);
  9. res.push_back(firstRow);
  10. for (size_t i = 1; i < numRows; i++)
  11. {
  12. vector<int> tmpRow;
  13. tmpRow.push_back(1);
  14. for (size_t j = 1; j < i; j++)
  15. {
  16. tmpRow.push_back(res[i - 1][j - 1] + res[i - 1][j]);
  17. }
  18. tmpRow.push_back(1);
  19. res.push_back(tmpRow);
  20. }
  21. return res;
  22. }
  23. };