leetcode_118_Pascal's Triangle

麻烦各位朋友帮忙顶一下增加人气,如有错误或疑问请留言纠正,谢谢微笑


Pascal's 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]

]


//vs2012测试代码  
#include<iostream>
#include<vector>

using namespace std;

vector<vector<int> > generate(int numRows) 
{
	vector<vector<int>> ans;
	//resize是改变容器的大小,并且创建对象;  reserve是容器预留空间,但并不真正创建元素对象
	//使用assign()将10个整数值42的副本赋值给vector: v.assign( 10, 42 );
	ans.resize(numRows); 
	for(int i=0; i<numRows; i++)
		ans[i].assign(i+1,1);
	for(int i=2; i<numRows; i++)
		for(int j=1; j<ans[i].size()-1; j++)
			ans[i][j] = ans[i-1][j-1] + ans[i-1][j];


	for(int i=0; i<numRows; i++)
	{
		for(int j=0; j<ans[i].size(); j++)
			cout<<ans[i][j];
		cout<<endl;
	}

	return ans;
}

int main()
{
	int num;
	cin>>num;
	generate(num);
	return 0;
}

//方法一:自测Accepted
class Solution {
public:
    vector<vector<int> > generate(int numRows) {
	vector<vector<int>> ans;
	//resize是改变容器的大小,并且创建对象;  reserve是容器预留空间,但并不真正创建元素对象
	//使用assign()将10个整数值42的副本赋值给vector: v.assign( 10, 42 );
	ans.resize(numRows); 
	for(int i=0; i<numRows; i++)
		ans[i].assign(i+1,1);
	for(int i=2; i<numRows; i++)
		for(int j=1; j<ans[i].size()-1; j++)
			ans[i][j] = ans[i-1][j-1] + ans[i-1][j];

	return ans;
    }
};


你可能感兴趣的:(LeetCode,C++,dp,array)