首页 > 代码库 > [leetcode] 2. Pascal's Triangle II

[leetcode] 2. 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?

就是输入k然后输出第k行帕斯卡三角【其实我一直把它叫杨辉三角】。

我这边思路是拿queue来不断弹出压入处理做那个二项式展开:

vector<int> getRow(int rowIndex) {    int aspros, defteros;                          aspros = defteros = 0;    queue<int> tmp;    vector<int> Pascal;    if (rowIndex == 0)    {        Pascal.push_back(1);        return Pascal;    }                             tmp.push(0);                                   tmp.push(1);    tmp.push(1);    for (int i = 1; i < rowIndex; i++)    {        tmp.push(0);        do        {            aspros = tmp.front();            if (!tmp.empty())                tmp.pop();            defteros = tmp.front();            tmp.push(aspros + defteros);        } while (defteros != 0);    }    tmp.pop();    while (!tmp.empty())    {        Pascal.push_back(tmp.front());        tmp.pop();    }    return Pascal;}

queue和vector其实感觉还不熟,应该可以拿vector直接来做的【以后改】

 

[leetcode] 2. Pascal's Triangle II