首页 > 试题广场 >

杨辉三角(一)

[编程题]杨辉三角(一)
  • 热度指数:3053 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个非负整数 num ,生成杨辉三角的前 num 行。
杨辉三角中,每个数是左上方和右上方的数之和。

数据范围:

例如当输入为4时,对应的返回值为[[1],[1,1],[1,2,1],[1,3,3,1]],打印结果如下图所示:

示例1

输入

1

输出

[[1]]
示例2

输入

4

输出

[[1],[1,1],[1,2,1],[1,3,3,1]]
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param num int整型 
# @return int整型二维数组
#
class Solution:
    def generate(self , num: int) -> List[List[int]]:
        # write code here
        res = []
        for i in range(1, num + 1):
            tmp = [0 for j in range(i)]
            tmp[0] = 1
            tmp[-1] = 1
            for j in range(1, i-1):
                tmp[j] = res[-1][j-1] + res[-1][j]
            res.append(tmp)

        return res

发表于 2024-05-05 23:25:58 回复(0)
class Solution:
    def generate(self , num: int) -> List[List[int]]:
        # write code here
        g = [[1]]   #先定义第一行[[1]]
        if num ==1:
            return g
        for n in range(1,num):    
            t = [1]    #每一行的第一个元素为1
            for i in range(1,n):
                j = g[n-1][i] + g[n-1][i-1]     #第n行的第i个元素,为上一行的第i个元素和i-1个元素之和
                t.append(j)
            t.append(1)   #每一行的最后一个元素为1
            g.append(t)
        return g

发表于 2023-02-21 10:46:34 回复(0)