leetcode_118. 杨辉三角

目录

一、题目内容

二、解题思路

三、代码


一、题目内容

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

在杨辉三角中,每个数是它左上方和右上方的数的和。

 

示例:

输入: 5
输出:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

二、解题思路

没啥说的,逐行邻近元素相加即可,两端的1可单独加入。

三、代码


  
  1. class Solution:
  2. def generate(self, numRows: int):
  3. """
  4. :param numRows: int
  5. :return: List[List[int]]
  6. """
  7. if not numRows:
  8. return []
  9. def Triangle(array):
  10. tmp = []
  11. for i in range(len(array) + 1):
  12. if i == 0:
  13. tmp.append(1)
  14. elif i == len(array):
  15. tmp.append(1)
  16. else:
  17. tmp.append(array[i - 1] + array[i])
  18. return tmp
  19. ans = []
  20. tmp = [1]
  21. ans.append(tmp)
  22. for _ in range(0, numRows - 1):
  23. tmp = Triangle(ans[-1])
  24. ans.append(tmp)
  25. return ans
  26. if __name__ == '__main__':
  27. n = 5
  28. s = Solution()
  29. ans = s.generate(n)
  30. print(ans)

文章来源: nickhuang1996.blog.csdn.net,作者:悲恋花丶无心之人,版权归原作者所有,如需转载,请联系作者。

原文链接:nickhuang1996.blog.csdn.net/article/details/110749181

(完)