杨辉三角

概述:给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。

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

方法一:数学法

思路:每行数字左右对称,由 1 开始逐渐变大再变小,并最终回到 1。每个数字等于上一行的左右两个数字之和,可用此性质写出整个杨辉三角。

# 数学法
class Solution:def generate(self, numRows: int) -> List[List[int]]:ans = []n = numRowsfor i in range(n):row = []for j in range(0, i + 1):if j == 0 or j == i:row.append(1)else:row.append(ans[i - 1][j] + ans[i - 1][j - 1])ans.append(row)   return ans

方法二:错位相加

思路:观察一下规律,发现当前一行只比上一行多了一个元素,最最关键的一点:本行元素等于上一行元素往后错一位再逐个相加。因此我们只要对最后一行单独处理:最后一行首、尾分别添加一个零然后对应位置求和就可以得到新的一行。

# 错位相加
class Solution:def generate(self, numRows: int) -> List[List[int]]:n = numRowsif n == 0:return []ans = [[1], ]while len(ans) < n:row = [i + j for i, j in zip([0] + ans[-1], ans[-1] + [0])]ans.append(row)return ans

总结

我也在纸上比划了半天,为啥就发现不了这个规律呢?

LeetCode:118(Python)—— 杨辉三角(简单)相关推荐

  1. python杨辉三角 简单方法

    何为杨辉三角,杨辉三角就是,第一行与第二行分别为1和1,1  再往后第三行就有规律了,除了开头和结尾的数(都是1),每个数都是自己左上角和右上角的和.如图: 如何用编程把它实现呢?我们可以发现,每一行 ...

  2. python杨辉三角金字塔

    python杨辉三角金字塔(CQUPT.20201.4.26.1) 代码如下: def fun(n):list_1=[[1]*n for i in range(n)]#相当于创建二维数组for i i ...

  3. python杨辉三角_yiduobo的每日leetcode 118.杨辉三角 amp;amp; 119.杨辉三角II

    祖传的手艺不想丢了,所以按顺序写一个leetcode的题解.计划每日两题,争取不卡题吧. 118.杨辉三角https://leetcode-cn.com/problems/pascals-triang ...

  4. 力扣(leetcode)[118. 杨辉三角] 简单

    > Problem: [118. 杨辉三角] # 解题方法 > 看官方给的图就明白了,杨辉三角嘛,最左边和最右边的数都为1,中间的数就是对应上面两个之和,即下面一行的第二个(第一个是1)是 ...

  5. leetcode数组汇总_LeetCode刷题实战118:杨辉三角

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !今天和大家聊 ...

  6. LeetCode(118)——杨辉三角(JavaScript)

    给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例1: 输入: 5 输出: [ [1], [1,1], [1,2,1], ...

  7. python杨辉三角_python中的部分高级特性

    代码环境:python3.6 列表生成式 创建一个 list,python 内置了一个非常简洁却强大的方式. 举个例子,生成一个[1, 2, 3, 4, 5]的 list,可以用: [x for x ...

  8. python杨辉三角居中_python打印杨辉三角的两种方法及详解

    艾斯压阵 1c950a7b02087bf4200394cdf1d3572c11dfcf23.jpg 一盏灯, 一片昏黄: 一简书, 一杯淡茶. 守着那一份淡定, 品读属于自己的寂寞. 保持淡定, 才能 ...

  9. python杨辉三角输出指定行_使用python打印十行杨辉三角过程详解

    如何用python输出杨辉三角 程序输出需要实现如下效果: [1] [1,1] [1,2,1] [1,3,3,1] .. 方法:迭代,生成器 12345678910111213141516171819 ...

  10. python杨辉三角居中_利用python打印杨辉三角

    用python打印杨辉三角 介绍 杨辉三角,是初高中时候的一个数列,其核心思想就是说生成一个数列,该数列中的每一个元素,都是之前一个数列中,同样位置的元素和前一个元素的和. 正好在python中,也就 ...

最新文章

  1. [YTU]_2384 ( 矩形类中运算符重载【C++】)
  2. CUDA常见问题与解答
  3. 【cJson】JSON的基本概念
  4. 【HDU - 1870】愚人节的礼物(水题模拟 思想类似于栈?)
  5. android中的handler例
  6. yolo标注文件转换工具,python做的
  7. 羊皮卷之七-我要笑遍世界(中英对照)
  8. 配置OpenWRTnbsp;校园网实现amp;nbsp…
  9. 港科夜闻|香港科大海洋科学系主任兼讲座教授钱培元:成立产业推广部抢商机...
  10. 谷歌地图地理翻遍码,谷歌地图地点搜索
  11. Hello Riak
  12. 数据分析师招聘情况之python分析
  13. 博弈论 (入门)CSU2209 记忆化搜索
  14. 解决virus.vbs.wiritebin.a和Virus.Win32.Ramin.x病毒
  15. NJUPT 《信安数基》第 10 章证明题攻略
  16. Solidity 基础知识
  17. 【心酸】从上一家公司到下一家公司
  18. chariot iperf使用_网络性能测试软件Iperf与ixChariot有什么区别
  19. 内置对象(转,侵立删)
  20. 软件测试循环测试原理,电化学测试(三):循环伏安法详解

热门文章

  1. 视觉slam建图导航中建立map->odom的tf关系
  2. 学大伟业:高二才开始学化学竞赛还来得及吗?
  3. OpenLayers 6实现底图裁剪效果,只显示指定城市或区域范围内的地图
  4. js抽奖活动简单实现
  5. Activity中recreate方法的应用
  6. 海看股份创业板IPO过会:上半年营收近5亿元,称用户规模扩张受限
  7. rt-thread学习笔记——11、创建邮箱
  8. fx5800p编程教程_CASIOfx5800P基本功能及编程学习解说.ppt
  9. [朝花夕拾][19H2]Win10.0.18363.2158微调-养老专用
  10. quicksql安装与调试