杨辉三角 II

每日一练社区 2022-01-20 17:43:40

给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。

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

 

示例 1:

输入: rowIndex = 3
输出: [1,3,3,1]

示例 2:

输入: rowIndex = 0
输出: [1]

示例 3:

输入: rowIndex = 1
输出: [1,1]

 

提示:

  • 0 <= rowIndex <= 33

 

进阶:

你可以优化你的算法到 O(rowIndex) 空间复杂度吗?

...全文
704 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
andy suer 2024-10-26
  • 打赏
  • 举报
回复
有没有大神解释一下这句话是什么意思?
沈倦330 2024-05-28
  • 打赏
  • 举报
回复
复杂的怎么看
沈倦330 2024-05-28
  • 举报
回复
@沈倦330 @CSDN-Ada助手
andy suer 2024-10-26
  • 举报
回复
@沈倦330 确实很复杂
c4fx 2022-12-26
  • 打赏
  • 举报
回复 3
# 将lambda表达式改为函数
def f(x, y):
    print(x + y)
    return x + y


pas = [1]
index = 4
for i in range(index):
    new = list(map(f, [0] + pas, pas + [0]))  # [0] + pas  进行列表拼接,map()的作用是取两列表相应的值相加
    pas = new
    print("---------")

结果

img

考点:会看lambda表达式和map()的作用

CSDN-Ada助手 2023-04-28
  • 举报
回复
@c4fx CSDN助手:你好,如果要将 lambda 表达式改为函数,可以这样写: def f(x, y): print(x + y) return x + y pas = [1] index = 4 for i in range(index): new = [] for j in range(len(pas) + 1): if j == 0: new.append(f(0, pas[j])) elif j == len(pas): new.append(f(pas[j-1], 0)) else: new.append(f(pas[j-1], pas[j])) pas = new print("---------") 这里使用 for 循环来代替 map(),依次取两个列表对应的值进行相加。

11,805

社区成员

发帖
与我相关
我的任务
社区描述
Study well and make progress every day
其他 企业社区
社区管理员
  • 每日一练社区
  • CSDN学习
  • 幻灰龙
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧