标签:
打印杨辉三角:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
输入打印的行数,返回vector<vector<int> >类型。
【思路】
1.我的思路是,先分配vector的空间,用resize,再用下标访问[i]。
2.别人的思路,每行都是一个新vector<int> cur,赋值后push_back到ret。
【other codes】
vector<vector<int> > generate(int numRows) { int i, j; for(i=0; i<numRows; i++) { vector<int> cur; if(i==0) cur.push_back(1); else{ for(j=0; j<=i; j++) { if(j==0||j==i) cur.push_back(1); else{ int ans=ret[i-1][j-1]+ret[i-1][j]; cur.push_back(ans); } } } ret.push_back(cur); } return ret; }
【my code】
vector<vector<int> > generate(int numRows) { vector<vector<int> >ret;
if(numRows==0)
return ret; int i, j; ret.resize(numRows); ret[0].push_back(1); for(i=1; i<numRows; i++) { ret[i].resize(i+1); ret[i][0]=1; ret[i][i]=1; for(j=1; j<i; j++) { ret[i][j]=ret[i-1][j-1]+ret[i-1][j]; } } return ret; }
【评价】
一开始总是不能通过,显示最后一个执行的测试是{0},
加上if(numRows==0) return ret;这句话就OK了,应该考虑到不合法的情况,这样返回的ret是个空向量?!
OJ练习28——T118 Pascal's Triangle
标签:
原文地址:http://www.cnblogs.com/ketchups-notes/p/4453427.html