题目:
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?
思路:只用1个向量作为终究结果的存储空间便可,中间1直使用这个向量来更新。
//第k层的数
void PascaltriangleKth(int k)
{
vector<int> result(k,0);
int tmp1,tmp;
for(int i=0;i<k;i++)
{
for(int j=0;j<=i;j++)
{
if(j==0 || j==i)
{
tmp = 0;
tmp1 = 1;
result[j]=1;
}
else
{
tmp = result[j];
result[j] += tmp1;
tmp1 = tmp;
}
}
}
for(int j=0;j<result.size();j++)
cout<<result[j]<<" ";
cout<<endl;
}