力扣刷题记录#数组#简单#118.119杨辉三角

题目描述 118

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

示例

输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]

解答

class Solution(object):
    def generate(self, numRows):
        """
        :type numRows: int
        :rtype: List[List[int]]
        """
        if numRows==0:
            return []
        if numRows==1:
            return [[1]]
        if numRows==2:
            return [[1],[1,1]]
        
        triangle = list()
        triangle.append([1])
        triangle.append([1,1])
        
        for i in range(2,numRows):
            triangle.append(list())
            triangle[i].append(1)
            triangle[i].append(1)
            for j in range(1,i):
                triangle[i].insert(j,(triangle[i-1][j-1]+triangle[i-1][j]))
                
        return triangle

注意:输入的numRows是杨辉三角实际的行数,它比输出了列表的最大索引大一(列表索引从0起)

题目描述 119

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。

示例

输入: 3
输出: [1,3,3,1]

解答

class Solution(object):
    def getRow(self, rowIndex):
        """
        :type rowIndex: int
        :rtype: List[int]
        """
        if rowIndex==0:
            return [1]
        if rowIndex==1:
            return [1,1]
        
        triangle = list()
        triangle.append([1])
        triangle.append([1,1])
        
        for i in range(2,rowIndex+1):
            triangle.append(list())
            triangle[i].append(1)
            triangle[i].append(1)
            for j in range(1,i):
                triangle[i].insert(j,(triangle[i-1][j-1]+triangle[i-1][j]))
                
        return triangle[rowIndex]

注意:这道题里的rowIndex和数组的索引是对应的,都是从0开始

你可能感兴趣的:(力扣,力扣)