Pascal's Triangle II -leetcode
2013-10-05 20:17
337 查看
Pascal's Triangle II
AC Rate: 739/2353My Submissions
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?
思路:如果用组合数求阶乘的方式,一定会溢出,那么直接考虑pascal三角的性质,我们求第k行的时候,只需要用到k-1行的值,依次类推,那么我们就可以由k=1,一直递推到第k行,例:求[1,3,3,1]时,我们可以先求k=0,[1]; k=1, [1,1], 这两个可以直接给出,那么k=2时,可以利用k=1的结果,首先初始化一个存有k+1个1的vector,这样v[0]默认就是1,不需要改变,那么v[i] = v[i-1]
+ v[i], i >0,要想在原地存储结果那么就要用一个变量保存v[i]的值,依次类推,就可以得到结果了。说的不是很明白,直接上代码吧~
class Solution { public: vector<int> getRow(int rowIndex) { // Note: The Solution object is instantiated only once and is reused by each test case. if (rowIndex < 0) return vector<int>(); vector<int> v(rowIndex + 1, 1); if (rowIndex < 2) return v; for (int i = 2; i < rowIndex + 1; ++i ) { int pre = 1; for (int j = 1; j < i ; ++j) { int tmp = v.at(j); // 保存上一行的对应位置的前一个位置值 v.at(j) = pre + v.at(j); pre = tmp; } } return v; } };
相关文章推荐
- Pascal's Triangle--LeetCode
- LeetCode | Pascal's Triangle(杨辉三角)
- LeetCode[Array]: Pascal's Triangle
- LeetCode|Pascal's Triangle-java
- 和大神们学习每天一题(leetcode)-Pascal's Triangle II
- Leetcode[118]-Pascal's Triangle
- 【leetcode】118. Pascal's Triangle
- leetcode - Pascal's Triangle II
- 【Leetcode】Pascal's Triangle II
- leetcode -- Pascal's Triangle -- 简单
- Leetcode Pascal's Triangle
- leetcode: Pascal's Triangle | Java最短代码实现
- LeetCode 118. Pascal's Triangle
- LeetCode Pascal's Triangle
- LeetCode---Pascal's Triangle
- leetcode || 118、Pascal's Triangle
- [leetcode][array] Pascal's Triangle
- 【LeetCode刷题记录】Pascal's Triangle II
- LeetCode 118 Pascal's Triangle
- [LeetCode]Pascal's Triangle