Day14

  1. Pascal's Triangle
    **思路:霸蛮做一做还是能做出来的。本题是要写出杨辉三角的每一行的数组。利用前一行数组的第i位+第i+1位=本行的第i+1位数,收尾添1.
class Solution(object):
    def generate(self, numRows):
        """
        :type numRows: int
        :rtype: List[List[int]]
        """
        if numRows ==0 :
            return []
        res = [[1]]
        if numRows ==1 :
            return res
        p = [1,1] 
        while numRows >= 2:
            res.append([node for node in p])
            q = []
            q.append(1)
            for i in range(0,len(p)-1):
                q.append(p[i]+p[i+1])
            q.append(1)
            p =q
            numRows -= 1
        return res
  1. Pascal's Triangle II
    **思路:由于题目中强调希望能只有O(K)的空间复杂度,那么便依照以往的数组从后往前推来更新的方式,便能不用开辟新的空间来存储新的数组。开始写错了一个地方,range(大数,小数),这样写是不知道依次递减的么?对语法还是不熟练
class Solution(object):
    def getRow(self, rowIndex):
        """
        :type rowIndex: int
        :rtype: List[int]
        """
        if rowIndex == 0:
            return [1]
        if rowIndex == 1:
            return [1,1]
        p =[0 for i in range(rowIndex+1)]
        p[0],p[1] = 1,1
        nums = rowIndex-2
        while nums >= 0 :
            for k in range(rowIndex,0,-1):
                p[k] = p[k] + p[k-1]
            nums -=1
        return p
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容