【leetcode❤python】119. Pascal's Triangle II

#-*- coding: UTF-8 -*-
#杨辉三角返回给定行
#方法:自上而下考虑问题,从给定的一行计算出下一行,则给定行数之后,计算的最后一行就是求解的最后一行
class Solution(object):
    def getRow(self, rowIndex):
        """
        :type rowIndex: int
        :rtype: List[int]
        """
        #初始化杨辉三角前两行
        ans=[[1],[1,1]]
        #如果输入rowIndex小于2 表示的是前两行
        if rowIndex<2:return ans[rowIndex]
        #以初始化的杨辉三角为第一个一个pre=ans[-1]
        pre=ans[-1]
        
        #i表示的是从第一行开始计算一直计算到rowIndex-1行,i=1可以计算出i=2
        for i in range(1,rowIndex):
            print i, pre
            # t 表示计算的是下一行元素的 除去首尾两个的其他元素值
            nextT=[1]+[pre[t]+pre[t+1] for t in range(len(pre)-1)]+[1]
            pre=nextT
        return pre

posted @ 2016-10-12 16:49  火金队长  阅读(114)  评论(0编辑  收藏  举报