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

【LeetCode】Pascal's Triangle II

时间:2014-11-28 17:56:14      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   sp   for   

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?

 

解法一:利用Pascal‘s Triangle的结果,选取最后一行返回即可

class Solution {
public:
    vector<int> getRow(int rowIndex) {
        vector<vector<int> > result = generate(rowIndex+1);
        return result[rowIndex];
    }
    vector<vector<int> > generate(int numRows) 
    {
        vector<vector<int> > result;
        if(numRows == 0)
        {
            //nothing
        }
        else if(numRows == 1)
        {
            //第0层
            vector<int> cur;
            cur.push_back(1);
            result.push_back(cur);
        }
        else
        {
            //第0层
            vector<int> cur;
            cur.push_back(1);
            result.push_back(cur);

            for(int n = 1; n < numRows; n ++)
            {//用<n choose m>的通项公式来做肯定溢出,所以只能用加法做
                vector<int> cur;
                //
                cur.push_back(1);
                //中间元素是上层两元素相加
                for(int i = 0, j = 1; j < n; i++, j++)
                {
                    vector<int> pre = result[result.size()-1];
                    cur.push_back(pre[i]+pre[j]);
                }
                //
                cur.push_back(1);
                result.push_back(cur);
            }
        }
        return result;
    }
};

bubuko.com,布布扣

 

【LeetCode】Pascal's Triangle II

标签:style   blog   http   io   ar   color   os   sp   for   

原文地址:http://www.cnblogs.com/ganganloveu/p/4128953.html

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