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

你可能感兴趣的:(Day14)