LeetCode:118(Python)—— 杨辉三角(简单)
杨辉三角
概述:给定一个非负整数 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)—— 杨辉三角(简单)相关推荐
- python杨辉三角 简单方法
何为杨辉三角,杨辉三角就是,第一行与第二行分别为1和1,1 再往后第三行就有规律了,除了开头和结尾的数(都是1),每个数都是自己左上角和右上角的和.如图: 如何用编程把它实现呢?我们可以发现,每一行 ...
- python杨辉三角金字塔
python杨辉三角金字塔(CQUPT.20201.4.26.1) 代码如下: def fun(n):list_1=[[1]*n for i in range(n)]#相当于创建二维数组for i i ...
- python杨辉三角_yiduobo的每日leetcode 118.杨辉三角 amp;amp; 119.杨辉三角II
祖传的手艺不想丢了,所以按顺序写一个leetcode的题解.计划每日两题,争取不卡题吧. 118.杨辉三角https://leetcode-cn.com/problems/pascals-triang ...
- 力扣(leetcode)[118. 杨辉三角] 简单
> Problem: [118. 杨辉三角] # 解题方法 > 看官方给的图就明白了,杨辉三角嘛,最左边和最右边的数都为1,中间的数就是对应上面两个之和,即下面一行的第二个(第一个是1)是 ...
- leetcode数组汇总_LeetCode刷题实战118:杨辉三角
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !今天和大家聊 ...
- LeetCode(118)——杨辉三角(JavaScript)
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例1: 输入: 5 输出: [ [1], [1,1], [1,2,1], ...
- python杨辉三角_python中的部分高级特性
代码环境:python3.6 列表生成式 创建一个 list,python 内置了一个非常简洁却强大的方式. 举个例子,生成一个[1, 2, 3, 4, 5]的 list,可以用: [x for x ...
- python杨辉三角居中_python打印杨辉三角的两种方法及详解
艾斯压阵 1c950a7b02087bf4200394cdf1d3572c11dfcf23.jpg 一盏灯, 一片昏黄: 一简书, 一杯淡茶. 守着那一份淡定, 品读属于自己的寂寞. 保持淡定, 才能 ...
- python杨辉三角输出指定行_使用python打印十行杨辉三角过程详解
如何用python输出杨辉三角 程序输出需要实现如下效果: [1] [1,1] [1,2,1] [1,3,3,1] .. 方法:迭代,生成器 12345678910111213141516171819 ...
- python杨辉三角居中_利用python打印杨辉三角
用python打印杨辉三角 介绍 杨辉三角,是初高中时候的一个数列,其核心思想就是说生成一个数列,该数列中的每一个元素,都是之前一个数列中,同样位置的元素和前一个元素的和. 正好在python中,也就 ...
最新文章
- [YTU]_2384 ( 矩形类中运算符重载【C++】)
- CUDA常见问题与解答
- 【cJson】JSON的基本概念
- 【HDU - 1870】愚人节的礼物(水题模拟 思想类似于栈?)
- android中的handler例
- yolo标注文件转换工具,python做的
- 羊皮卷之七-我要笑遍世界(中英对照)
- 配置OpenWRTnbsp;校园网实现amp;nbsp…
- 港科夜闻|香港科大海洋科学系主任兼讲座教授钱培元:成立产业推广部抢商机...
- 谷歌地图地理翻遍码,谷歌地图地点搜索
- Hello Riak
- 数据分析师招聘情况之python分析
- 博弈论 (入门)CSU2209 记忆化搜索
- 解决virus.vbs.wiritebin.a和Virus.Win32.Ramin.x病毒
- NJUPT 《信安数基》第 10 章证明题攻略
- Solidity 基础知识
- 【心酸】从上一家公司到下一家公司
- chariot iperf使用_网络性能测试软件Iperf与ixChariot有什么区别
- 内置对象(转,侵立删)
- 软件测试循环测试原理,电化学测试(三):循环伏安法详解
热门文章
- 视觉slam建图导航中建立map->odom的tf关系
- 学大伟业:高二才开始学化学竞赛还来得及吗?
- OpenLayers 6实现底图裁剪效果,只显示指定城市或区域范围内的地图
- js抽奖活动简单实现
- Activity中recreate方法的应用
- 海看股份创业板IPO过会:上半年营收近5亿元,称用户规模扩张受限
- rt-thread学习笔记——11、创建邮箱
- fx5800p编程教程_CASIOfx5800P基本功能及编程学习解说.ppt
- [朝花夕拾][19H2]Win10.0.18363.2158微调-养老专用
- quicksql安装与调试