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?
思路:只用一个向量作为最终结果的存储空间即可,中间一直使用这个向量来更新。
//第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; }
Pascal's Triangle II--LeetCode
原文地址:http://blog.csdn.net/yusiguyuan/article/details/44956017