leetcode 119 Pascal's Triangle II

Posted Militant_799

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 119 Pascal's Triangle II相关的知识,希望对你有一定的参考价值。

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

For example, given k = 3,
Return [1,3,3,1].

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

  • 要求空间复杂度为 O(n )
  • 和上题不同,此题是从0开始,和数组下标一致

 

关于杨辉三角的规律

  

 

Method1 :通过一维数组来模拟杨辉三角逐渐变换的情况

 

class Solution
{
public:
    vector<int> getRow(int numRows)
    {
        vector<int>result(numRows+1,0);
        result[0] = 1;
        for (int i=1; i <= numRows; i++)
        {
            for (int j=i; j >= 1 ; j--)
            {
                result[j] += result[j-1];
            }
        }
        return result;
    }
};

 数学公式

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

 公式是  result[i]  =  result[i-1] * (numrows - i + 1 ) / i

证明过程如下;

    根据杨辉三角的规律,注意 杨辉三角中第 n 行 第 k 个数字 对对应于数组中的 第 n -1 行 第 k -1 个数字 ,题目中要求输入的是数组角标

 

以上是关于leetcode 119 Pascal's Triangle II的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 119. Pascal's Triangle II

LeetCode 119. Pascal's Triangle II

C#解leetcode:119. Pascal's Triangle II

Java [Leetcode 119]Pascal's Triangle II

#Leetcode# 119. Pascal's Triangle II

LeetCode 119 Pascal's Triangle II