前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Q119 Pascal's Triangle II

Q119 Pascal's Triangle II

作者头像
echobingo
发布2018-04-25 16:53:50
4770
发布2018-04-25 16:53:50
举报

Given an index k, return the kth row of the Pascal's triangle.

代码语言:javascript
复制
For example, given k = 3,
Return [1,3,3,1].

Note: Could you optimize your algorithm to use only O(k) extra space?

解题思路:

题目参考见 Q118 Pascal's Triangle

要求空间复杂度为O(k),所以构造一半。最后根据奇、偶行构造完整的返回值。思路一样,即第k行的数是由第k-1行的数得到的,因此循环构造即可。

Python实现:
代码语言:javascript
复制
class Solution:
    def getRow(self, rowIndex):
        """
        :type rowIndex: int
        :rtype: List[int]
        """
        if rowIndex < 0:
            return []
        rlist = []
        rlist.append(1)
        i = 1
        while i <= rowIndex:
            j = len(rlist) - 1
            while j > 0:   # 构造下一个列表元素
                rlist[j] = rlist[j] + rlist[j-1]
                j -= 1
            if i % 2 == 1:   # 如果是奇数行,需要加一个元素
                rlist.append(rlist[-1])
            i += 1
        # 构造另一半
        if rowIndex % 2 == 1:   # 如将 [1,3,3] 变成 [1,3,3,1]
            rlist.extend(rlist[-3::-1])
        else:    # 如将 [1,4,6] 变成 [1,4,6,4,1]
            rlist.extend(rlist[-2::-1])  
        return rlist

a = 3
b = Solution()
print(b.getRow(a))  # [1,3,3,1]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.02.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解题思路:
  • Python实现:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档