Python实现杨辉三角(字节实习面试题)
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

下面给出了杨辉三角形的前4行:
1
1 1
1 2 1
1 3 3 1
给出n,输出它的前n行。
1 1
1 2 1
1 3 3 1
代码实现
1 def yanghui():
2 line = [1]
3 while True:
4 yield line
5 line = [1] +[line[i] + line[i+1] for i in range(len(line)-1)]+[1]
6
7 def run():
8 n = int(input())
9 flag = 0
10 for i in yanghui():
11 print(" ".join(str(j) for j in i))
12 flag += 1
13 if flag == n:
14 break
15
16
17 if __name__ == '__main__':
18 run()
力扣题解法
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
ret = list()
for i in range(numRows):
row = list()
for j in range(0, i + 1):
if j == 0 or j == i:
row.append(1)
else:
row.append(ret[i - 1][j] + ret[i - 1][j - 1])
ret.append(row)
return ret
复杂度分析
时间复杂度:O(\textit{numRows}^2)O(numRows2)。
空间复杂度:O(1)O(1)。不考虑返回值的空间占用。
Python实现杨辉三角(字节实习面试题)的更多相关文章
- 利用python打印杨辉三角
用python打印杨辉三角 介绍 杨辉三角,是初高中时候的一个数列,其核心思想就是说生成一个数列,该数列中的每一个元素,都是之前一个数列中,同样位置的元素和前一个元素的和. 正好在python中,也就 ...
- python实现杨辉三角
刚刚学python,原来用c++,Java很轻松实现的杨辉三角,现在用python实现,代码是少了,理解起来却不容易啊. 这里主要用到的Python的生成器. 我们都知道Python有列表解析功能,根 ...
- python 实现杨辉三角(依旧遗留问题)
1 #! usr/bin/env python3 #-*- coding :utf-8 -*- print('杨辉三角的generator') def triangles(): N=[1] while ...
- Python之杨辉三角算法实现
学习了廖雪峰的官方网站的python一些基础,里面有个题目,就是让写出杨辉三角的实现,然后我就花了时间实现了一把.思路也很简单,就是收尾插入0,然后逐层按照杨辉三角的算法去求和实现杨辉三角. 附属代码 ...
- python输出杨辉三角
使用python列表,展示杨辉三角 # !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan yanghui = [] fo ...
- Python实现杨辉三角,超详细!
巧妙实现杨辉三角代码 def triangles(): N=[1] #初始化为[1],杨辉三角的每一行为一个list while True: yield N #yield 实现记录功能,没有下一个ne ...
- python的杨辉三角
# # / \ # # / \ / \ # # / \ / \ / \ # # / \ / \ / \ / \ # # / \ / \ / \ / \ / \ # # ---------------- ...
- 用python实现杨辉三角
def yanghui(lines): currentlst,lastlst,n=[],[],1 if lines<1: return while n<=lines: lastlst=cu ...
- 用Python输出一个杨辉三角的例子
用Python输出一个杨辉三角的例子 这篇文章主要介绍了用Python和erlang输出一个杨辉三角的例子,同时还提供了一个erlang版杨辉三角,需要的朋友可以参考下 关于杨辉三角是什么东西,右转维 ...
- python 生成器生成杨辉三角
用Python写趣味程序感觉屌屌的,停不下来 #生成器生成展示杨辉三角 #原理是在一个2维数组里展示杨辉三角,空的地方用0,输出时,转化为' ' def yang(line): n,leng=0,2* ...
随机推荐
- 【转载】PCT体系与传统专利体系的比较——不同国际专利申请途径的区别
原文地址: 国家知识产权局 基础知识 PCT体系与传统专利体系的比较 (cnipa.gov.cn) ======================================= 专利合作条约(PAT ...
- Ubuntu22.04系统安装DeepMind Lab
相关资料: DeepMind Lab的一些python例子-----(Ubuntu22.04系统安装DeepMind Lab)后续 ================================== ...
- dubbo序列化问题(二)hession2与kryo切换
转
dubbo提供了好几种序列化方式,一般我们都是用的是默认的hession2,而dubbox为我们增加了kryo和fst许了方式,主要体现在速度快,占用内存小,然后我们将序列化配置改为是用kryo: & ...
- Github 通义千问模型测试
通义千问 大模型安装 相关地址 https://github.com/QwenLM/Qwen2-Audio/blob/main/README_CN.md PS C:\Users\supermao> ...
- 四,分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器) 以及个人编写启动 Tomcat
四,分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器) 以及个人编写启动 Tomcat @ 目录 四,分析Spring Bo ...
- Python 潮流周刊#67:uv 的重磅更新(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- Docker高级:Redis集群实战!4主4从缩容到3主3从,怎么处理?
在上一篇,我们学会了redis集群的扩容.从3主3从扩容到4主4从. 那么,接着,活动过去了.流量没有那么大了.需要缩容了.从4主4从缩容到3主3从了.那么这个时候又该怎么处理呢? PS本系列:< ...
- 【YashanDB知识库】ycm托管数据库时报错OM host ip:127.0.0.1 is not support join to YCM
问题现象 托管数据库时检查报错OM的IP是127.0.0.1,不支持托管到YCM OM 问题的风险及影响 导致数据库无法托管监控 问题影响的版本 问题发生原因 安装数据库时修改了OM的监听ip为127 ...
- 【YashanDB知识库】23.1.3.101版本创建物化视图coredump
[标题]23.1.3.101版本创建物化视图coredump [问题分类]数据库错误 [关键词]YashanDB, 物化视图, coredump, dblink [问题描述]在23.1.3.101版本 ...
- JDBC,SQL注入,事务,C3P0于Druid连接池(最详细解析)
JDBC JDBC(Java DataBase Connectivty,Java数据库连接)API,是一种用于执行Sql语句的Java API,可以为关系型数据库提供统一的访问,其由一组Java编写的 ...