leetcode笔记:Pascal's Triangle II
来源:互联网 发布:水晶球软件 储量计算 编辑:程序博客网 时间:2024/05/18 18:45
一. 题目描述
Given an index k
, return the k
th 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?
二. 题目分析
关于帕斯卡三角形的定义,可参考:http://baike.baidu.com/link?url=qk_-urYQnO4v6v3P4BuMtCa0tMNUqJUk4lmbkb1aqbqikBU-ndiMlTF20fq2QUjTTFTeTohZ72KFxgBnz4sJha
该题要求只输出第k行的元素值,并且要求空间复杂度为O(k)
,因此,采用的方法是只使用一个定长的数组,用于存放每一行的元素值,对于每个新的行,可对原先存放的行从后往前扫描,主要分为以下三种情况:
- 最后一个元素,直接等于1;
- 对于下标为i的中间元素,有:
result[i] = result[i-1] + result[i]
; - 第一个元素,直接等于1;
这样,就只需要O(k)
的空间。
三. 示例代码
class Solution {public: vector<int> getRow(int rowIndex) { vector<int> result(rowIndex + 1); result[0] = 1; if (rowIndex < 1) return result; for(int i = 1; i <= rowIndex; ++i) for(int j = i; j >= 0; --j) if (j == i || j == 0) result[j] = 1; else result[j] = result[j-1] + result[j]; return result; }};
四. 小结
若不要求O(k)
的空间复杂度,该题的难度更低,但这样也没什么技巧可言了。
4 0
- leetcode笔记:Pascal's Triangle II
- LeetCode笔记:119. Pascal's Triangle II
- LeetCode Pascal's Triangle II
- LeetCode: Pascal's Triangle II
- [LeetCode] Pascal's Triangle II
- [Leetcode] Pascal's Triangle II
- 【leetcode】Pascal's Triangle II
- LeetCode - Pascal's Triangle II
- Leetcode: Pascal's Triangle II
- LeetCode-Pascal's Triangle II
- [leetcode] Pascal's Triangle II
- LeetCode - Pascal's Triangle II
- LeetCode | Pascal's Triangle II
- Pascal's Triangle II -leetcode
- Leetcode Pascal's Triangle II
- [LeetCode] Pascal's Triangle II
- Leetcode: Pascal's Triangle II
- Leetcode Pascal's Triangle II
- java面试笔记2
- org.apache.shiro.SecurityUtils.getSubject().getSession()
- 各个数据库原始的driveClass的maven依赖
- 最新版SDWebImage的使用
- 支付宝投诉人工QQ号码是
- leetcode笔记:Pascal's Triangle II
- URL中“#” “?” &“”号的作用
- dll问题
- protocol与delegate
- Android 读取目录中的文件列表并展示
- java面试笔记3
- node使用本地存储的方式可以使用多个data本地域
- Using Databases with Python -Musical Track Database (produce database from XML file)
- python 中的yield