zoukankan      html  css  js  c++  java
  • 每日leetcode-数组-118. 杨辉三角

    分类:二维数组及滚动数组

    题目描述:

    给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

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

    解题思路1:

    在杨辉三角中,每个数是它左上方和右上方的数的和。
    题目给的这一句话提示就够了。稍微麻烦的是要考虑头尾为1的情况
    那不如根据行创建对应全1的列表,然后在根据非边缘的值进行公式套用

    class Solution:
        def generate(self, numRows: int) -> List[List[int]]:
            # 根据行创建对应全1的列表,然后在根据非边缘的值进行公式套用
            ret = []
            for i in range(1,numRows+1):
                temp = [1 for i in range(i)]
                for j in range (1,len(temp)-1):
                    # 这里注意是 i-2
                    temp[j] = ret[i-2][j-1]+ret[i-2][j]
                ret.append(temp)
            return ret

    解题思路2:

    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
  • 相关阅读:
    SQL 开窗函数
    使用 git 管理源代码
    mybatis常见问题
    es-删除记录
    Jmeter使用
    websocket在服务端获取客户端IP
    单点登录
    java中的HTTP客户端
    SpringBoot利用Redis管理分布式Session
    springboot中的统一异常处理
  • 原文地址:https://www.cnblogs.com/LLLLgR/p/14729976.html
Copyright © 2011-2022 走看看