题目来自于Leetcode

https://leetcode.com/problems/pascals-triangle/

Given numRows, generate the first numRows of Pascal's triangle.

For example, given numRows = 5,

Return

[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int> >res;
for(int i=0;i<numRows;i++)
{
vector<int>vec(i+1,1);
if(i>1)
for(int j=1;j<i;j++)
vec[j]=res[i-1][j-1]+res[i-1][j];
res.push_back(vec);
vector<int>().swap(vec);
}
return res;
}
};

Pascal's Triangle II

Total Accepted: 42320 Total
Submissions: 143760

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?

此处有内存要求尽管採用第一种方法能够ac可是明显不符合要求

class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<vector<int> >res;
for(int i=0;i<rowIndex+1;i++)
{
vector<int>vec(i+1,1);
if(i>1)
for(int j=1;j<i;j++)
vec[j]=res[i-1][j-1]+res[i-1][j];
res.push_back(vec);
vector<int>().swap(vec);
}
return res[rowIndex]; }
};

我们必须又一次设计算法。

第一想到的就是pascal三角形的系数会等于N行i列的值等于
( r
     n )


可是
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int>res(rowIndex+1,1);
if(rowIndex<2)
return res;
long long nth=1;
for(int i=1;i<rowIndex+1;i++)
nth*=i;
long long rth=1,n_rth=nth;
for(int i=1;i<rowIndex;i++)
{ n_rth/=(rowIndex-i+1);
res[i]=nth/rth/n_rth;
rth*=(i+1);
}
return res;
}
};

用来存储二项式系数的值非常easy在rowIndex=24时候就报错了

最后一种也就是正确的方法是利用分配的空间来计算的详细给出了k=5的详细描写叙述

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXllbGlodWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int>res(rowIndex+1,1);
if(rowIndex<2)
return res;
int t1,t2;
for(int i=2;i<=rowIndex;i++)
{
t1=res[0];
t2=res[1];
for(int j=1;j<i+1;j++)
{
res[j]=t1+t2;
t1=t2;
t2=res[j+1];
}
res[i]=1;
}
return res;
}
};



My Submissions

Question
 Solution 

最新文章

  1. 连载《一个程序猿的生命周期》- 44.感谢,我从事了IT相关的工作
  2. js通过location.search来获取页面传来的参数
  3. 解决&lt;a&gt;文本本身带下划线和超链接下划线重合的问题
  4. mapreduce job提交流程源码级分析(一)(原创)
  5. Django对静态文件的处理——部署阶段
  6. 配置Session变量的生命周期
  7. Linux系统编程(24)——信号的生命周期
  8. Android OpenGL ES 开发(五): OpenGL ES 使用投影和相机视图
  9. 在controller中将timestamp类型的数据通过toString()方法变成字符串
  10. 潭州课堂25班:Ph201805201 django 项目 第十三课 短信验证码后台的实现 (课堂笔记)
  11. .NetCore中EFCore的使用整理
  12. nginx下js文件修改后访问不更新问题解决
  13. Myeclipse 配置Git详解
  14. Mac office ppt无法正常输入文字的问题解决方案
  15. PHP 程序员学数据结构与算法之《栈》
  16. eclipse git 报 git: 401 Unauthorized
  17. Qt Quick快速入门之线程基础
  18. opengl 模板测试 glStencilOp glStencilFunc
  19. mschart 使用心得和部署。
  20. swift的UITableView的使用

热门文章

  1. loj#2718. 「NOI2018」归程
  2. 【Floyd(并非水题orz)】BZOJ4093-[Usaco2013 Dec]Vacation Planning
  3. AFNetworking源码品读
  4. SPOJ 10232. Distinct Primes
  5. hdoj 5198 Strange Class 水题
  6. 设置Nginx开机自启动
  7. Swift3.0字符串相关操作
  8. Git_简介
  9. JSONP跨域访问百度实现搜索提示小案例
  10. ecshop功能目录