119. Pascal's Triangle II待续。。。
来源:互联网 发布:java中replaceall 编辑:程序博客网 时间:2024/05/16 05:59
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's Triangle很类似,只是这里只需要求出某一行的结果。Pascal's Triangle是求出全部结果,所以我们需要上一行的数据就很自然的可以去取。而这里我们只需要一行数据,就得考虑一下是不是能只用一行的空间来存储结果而不需要额外的来存储上一行呢?这里确实是可以实现的。对于每一行我们知道如果从前往后扫,第i个元素的值等于上一行的res[i]+res[i+1],可以看到数据是往前看的,如果我们只用一行空间,那么需要的数据就会被覆盖掉。所以这里采取的方法是从后往前扫,这样每次需要的数据就是res[i]+res[i-1],我们需要的数据不会被覆盖,因为需要的res[i]只在当前步用,下一步就不需要了。这个技巧在动态规划省空间时也经常使用,主要就是看我们需要的数据是原来的数据还是新的数据来决定我们遍历的方向。时间复杂度还是O(n^2),而空间这里是O(k)来存储结果,仍然不需要额外空间。
public class Solution { public List<Integer> getRow(int rowIndex) { List<Integer> res =new ArrayList<Integer>(); if(rowIndex<0) return res; res.add(1); for(int i=1;i<=rowIndex;i++){ for(int j=res.size()-2;j>=0;j--){ res.set(j+1,res.get(j)+res.get(j+1)); } res.add(1); } return res; }}
阅读全文
0 0
- 119. Pascal's Triangle II待续。。。
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- 119. Pascal's Triangle II
- Linux awk指令
- vbox虚拟机使用xshell
- vue 输入框 限定输入金额的范围并且用千分符显示,初始值有格式限制
- 写一个方法实现吧obj对象里的propertyName的属性值设置为value
- 实现水平垂直居中的五种方法
- 119. Pascal's Triangle II待续。。。
- 字符串循环移位
- L1-011. A-B
- 典型的字符串处理代码(algs4)
- FTP(vsftp)服务器的搭建配置以及访问控制
- 学以致用—股价月涨幅的计算
- 在Qtcreator下编译Nginx
- L1-012. 计算指数
- linux系统-延迟及定时任务与find命令的使用