119. Pascal's Triangle II
来源:互联网 发布:a5源码之家 编辑:程序博客网 时间:2024/06/01 21:41
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?
首先自然想到的是时间空间复杂度为O(n2)的解决方法,代码如下:
public List<Integer> getRow(int rowIndex) {
List<Integer> result = new ArrayList<Integer>();
// 进行特殊情况处理
if(rowIndex < 0){
return result;
}
int[][] matrix = new int[rowIndex + 1][rowIndex + 1];
for(int i=0; i <= rowIndex; i++){
matrix[i][i] = 1;
matrix[i][0] = 1;
}
for(int i=2; i <= rowIndex; i++){
for(int j=1; j < i; j++){
matrix[i][j] = matrix[i - 1][j] + matrix[i - 1][j - 1];
}
}
for(int i = 0; i <= rowIndex; i++){
result.add(matrix[rowIndex][i]);
}
return result;
}
接下来寻找优化方法,想要在O(K)的额外空间下进行计算,一定是根据上一次的结果得到下一次的结果,如此最终得到最后的结果,一种更好的解决方法如下:
public List<Integer> getRow(int rowIndex) {
List<Integer> result = new ArrayList<Integer>();
// 特殊情况处理
if(rowIndex < 0){
return result;
}
for(int i=0; i < rowIndex + 1; i++){
result.add(0, 1);
for(int j = 1; j < result.size() - 1; j++){
result.set(j, result.get(j) + result.get(j + 1));
}
}
return result;
}
- 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
- 教你如何使用免费的域名来访问电脑搭建的服务器
- JAVAweb开发技术-------(七)POI导入导出excel技术
- ioS开发--Warning警告处理
- Cpufreq
- 开始写博客,记录自己学习脚本POS的历程以及总结
- 119. Pascal's Triangle II
- Android防止重复点击事件
- JAVASE之集合(二)【Collection】
- Javascript构造函数、原型、对象
- 把spring-boot项目配置为Linux systemd服务,并注册自启动
- UIColor识别16进制的方法
- SurfaceView的使用以及空指针异常的处理
- ubuntu下解决安装leargist后出现FFTW问题
- i2c_add_driver:i2c驱动注册流程分析