Pascal's Triangle II
来源:互联网 发布:讯龙恢复软件注册码 编辑:程序博客网 时间:2024/06/04 18:20
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的思路,只不过这里有了O(k)的限制,既然限制了空间的使用,那么我们就要考虑怎么减少空间的损耗Pascal's Triangle里面我们求出了每一层的list,如今我们只需要求最后一层,那么久可以给最后一层定义一个list,其余各层都使用这一个list进行存储,这样存储空间就不会超过O(K)了。观察发现下一层等于在上一层的每两个数之间插入它们的和
[1,2,1]变成了[1,3,2,3,1],之后我们再将从倒数第三个数开始(从倒数开始,是因为这样方便,比如只需要将i - 2,就能找到下一个待删除的元素,如果说从头开始,那么下一个待删除元素将不好找,故我使用了倒数的方式),每隔一个数删除一个,即[1,3,3,1];
public class Solution { public List<Integer> getRow(int rowIndex) { <span style="white-space:pre"></span>List<Integer> list = new LinkedList<Integer>(); int low = 0; int high = 0; int level = 0; list.add(1); if(rowIndex >= 1 ){ list.add(1); } level = 1; while(level < rowIndex){ high = list.size() - 1; <span style="white-space:pre"></span>for(int i = 0,j = 1; j <= high;i = i + 2,j = j + 2){ <span style="white-space:pre"></span>list.add( i + 1, list.get(i)+list.get(j)); <span style="white-space:pre"></span>high ++; <span style="white-space:pre"></span>} for(int i = high - 2; i > 0; i --,i--){ list.remove(i); } <span style="white-space:pre"></span>level++; } <span style="white-space:pre"></span>return list; }}
Runtime: 208 ms
0 0
- Pascal's Triangle、Pascal's Triangle II
- Pascal's Triangle , Pascal's Triangle II
- Pascal's Triangle & Pascal's Triangle II
- Pascal's Triangle && Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- Pascal's Triangle II
- CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\.。。”--“拒绝访问
- solr cloud异常与处理
- std::vector的一些使用注意事项
- VM虚拟机网络设置
- 下拉框实现两列或多列(webbuilder)
- Pascal's Triangle II
- PHPMyadmin 配置文件详解(配置)
- 实现Android支付宝声波支付时的波纹视图
- 四种保存数据的方法
- 解决方法:An error occurred on the server when processing the URL. Please contact the system administrato
- 微信公众平台开发教程第23篇-SAE不支持XStream框架的解决方案
- StartSSL——服务器配置https
- [C++]LeetCode: 80 Find Minimum in Rotated Sorted Array
- 聚类算法优秀博客链接