码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 119. Pascal's Triangle II

时间:2018-06-14 01:09:10      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:row   script   pytho   out   desc   inpu   win   for   ber   

Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal‘s triangle.

Note that the row index starts from 0.

技术分享图片
In Pascal‘s triangle, each number is the sum of the two numbers directly above it.

Example:

Input: 3
Output: [1,3,3,1]

Follow up:

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

class Solution:
    def getRow(self, rowIndex):
        """
        :type rowIndex: int
        :rtype: List[int]
        """
        start = ans = [1]
        for i in xrange(0, rowIndex):            
            ans = start + [1]
            for j in xrange(1, len(ans)-1):
                ans[j] = start[j]+start[j-1]
            start = ans
        return ans

还可以少一个临时变量,从后向前计算相加:

class Solution:
    def getRow(self, rowIndex):
        """
        :type rowIndex: int
        :rtype: List[int]
        """
        ans = [1]
        for i in xrange(0, rowIndex):            
            ans = ans + [1]
            for j in xrange(len(ans)-2, 0, -1):
                ans[j] = ans[j]+ans[j-1]            
        return ans

 

也有使用dummy变量的做法:

class Solution(object):
    def getRow(self, rowIndex):
        """
        :type rowIndex: int
        :rtype: List[int]
        """
        row = [1]
        for _ in range(rowIndex):
            row = [x + y for x, y in zip([0]+row, row+[0])]
        return row

 另外就是数学解法,没有懂,TODO:

class Solution {
public:
    vector<int> getRow(int k) {
        vector<int> ans(k+1,1);
        for(int i=1;i<=k/2;++i){          
           ans[k-i]= ans[i]=long(ans[i-1])*(k-i+1)/i;           
        }        
        return ans;
    }
};

 

leetcode 119. Pascal's Triangle II

标签:row   script   pytho   out   desc   inpu   win   for   ber   

原文地址:https://www.cnblogs.com/bonelee/p/9180711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!