leetcode_118. 杨辉三角

举报
悲恋花丶无心之人 发表于 2021/02/02 23:30:57 2021/02/02
【摘要】 目录 一、题目内容 二、解题思路 三、代码 一、题目内容 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。   示例: 输入: 5 输出: [      [1],   &nb...

目录

一、题目内容

二、解题思路

三、代码


一、题目内容

给定一个非负整数 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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。