标签:
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] ]
Array
这道题是一个简单的数学题,第n+1行的数由第n行的数来计算,即最前最后为1,其他的数依次由n行的第i和第i+1个数相加而得
#include<iostream> #include <vector> using namespace std; vector<vector<int>> generate(int numRows) { vector<int> temp1; vector<int> temp2; vector<vector<int> >templast; if(numRows==0) return templast; if(numRows==1) { temp1.push_back(1); templast.push_back(temp1); return templast; } if(numRows==2) { temp1.push_back(1); templast.push_back(temp1); temp1.push_back(1); templast.push_back(temp1); return templast; } temp1.push_back(1); templast.push_back(temp1);//第一行 temp2.push_back(1),temp2.push_back(1); templast.push_back(temp2);//第二行 for(int i=2;i<numRows;i++) { temp1.clear(); int len=temp2.size(); temp1.push_back(1); for(int i=0;i<len-1;i++) temp1.push_back(temp2[i]+temp2[i+1]); temp1.push_back(1); templast.push_back(temp1); temp2.clear(); temp2=temp1; } return templast; } int main() { vector<vector<int> > vec1; vec1=generate(5); int len_n=vec1.size(); for(int i=0;i<len_n;i++) { int len_m=vec1[i].size(); for(int j=0;j<len_m;j++) cout<<vec1[i][j]<<‘ ‘; cout<<endl; } }
leetcode_118题——Pascal's Triangle(简单的数学题)
标签:
原文地址:http://www.cnblogs.com/yanliang12138/p/4476752.html