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)每一轮循环添加一个新行

  • 相关阅读:
    JDK中的主要包
    package

    参数传值机制
    静态初始化块
    static 关键字
    this关键字
    开发中容易造成内存泄露的操作
    通用的分代垃圾回收机制
    JVM调优和Full GC
  • 原文地址:https://www.cnblogs.com/ldgforever/p/9839801.html
Copyright © 2011-2022 走看看