zoukankan      html  css  js  c++  java
  • LeetCode118.杨辉三角

    1.个人所做代码

    class Solution:
        def generate(self, numRows):
            """
            :type numRows: int
            :rtype: List[List[int]]
            """
            tranList = []
            for i in range(0, numRows):
                tranList.append([])
    
            for k in range(0, numRows):
                tranList[k].append(1)
                for i in range(1, k):
                    if i != k:
                        tranList[k].append(tranList[k-1][i-1] + tranList[k-1][i])
                if k != 0:
                    tranList[k].append(1)
            return tranList

    2.他人的用时更短版本(记录一下)

    class Solution:
        def generate(self, numRows):
    
            a=[[1]]
        
            if numRows==0:
                return []
            while numRows-1:
                a.append([e1 + e2 for (e1,e2) in zip(a[-1]+[0],[0]+a[-1]) ])
                numRows-=1
            return a

    (1)zip()在py3中返回的是一个对象,需用list()强转才能直观显示

    (2)杨辉三角形的第一行为1,第二行为11,第三行可看作是110 + 011 = 121,第四行可看作是1210+0121 = 1331……依此类推

    (3)每一轮循环添加一个新行

  • 相关阅读:
    最近几周的总结
    做游戏
    枚举 结构 .....
    抽象类
    面向对象过程
    构造函数 对象关系
    .net 第二周学习
    。net初学
    CSS基本知识点(01)
    C#之ADO.NET基本知识点(01)
  • 原文地址:https://www.cnblogs.com/ldgforever/p/9839801.html
Copyright © 2011-2022 走看看