Pascal Triangle
来源:互联网 发布:airbnb 代订陷阱 淘宝 编辑:程序博客网 时间:2024/05/17 23:56
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?
10/31
这道题挺简单的, 还是犯了两个小错,见err1 和 err2
public List<Integer> getRow(int n) { // err1: ask if n could be 0? List<Integer> row = new ArrayList<Integer>(); row.add(1); for(int i=0; i<n; i++){ List<Integer> copy = new ArrayList<Integer>(row); row = new ArrayList<Integer>(); row.add(1); int len = copy.size(); for(int j=0; j<len-1; j++){ //err2: use a different index other than j row.add(copy.get(j) + copy.get(j+1)); } row.add(1); } // directly return [1] on n=0 return row; }}时间复杂度:
一共有n个循环, 在第i个循环生成第i行, 大约要做i个加法, 所以复杂度大概是O(n^2)
空间复杂度:
在每个循环中需要先储存上一个循环中得到的结果, 加上每次都需要记录目前的结果, 所以复杂度是O(n)\
Follow up: Further improvement:
Without extra space to store the previous row, we can scan each row backwards
public class Solution { public List<Integer> getRow(int n) { // err1: ask if n could be 0? List<Integer> row = new ArrayList<Integer>(); row.add(1); for(int i=0; i<n; i++){ int len = row.size(); for(int j=len-1; j>0; j--){ row.set(j, row.get(j) + row.get(j-1)); } row.add(1); // err1 : only need to append to the end; the first element is always 1: never reset } // directly return [1] on n=0 return row; }}
0 0
- Pascal Triangle
- Pascal Triangle
- 【Leetcode】Pascal's Triangle (Pascal)
- Pascal's Triangle、Pascal's Triangle II
- Pascal's Triangle , Pascal's Triangle II
- Pascal's Triangle Pascal's Triangle||
- Pascal's Triangle & Pascal's Triangle II
- Pascal's Triangle && Pascal's Triangle II
- LeetCode Pascal's Triangle
- [Leetcode] Pascal's Triangle
- LeetCode: Pascal's Triangle
- Pascal's Triangle
- Pascal's Triangle II
- [LeetCode] Pascal's Triangle
- 【leetcode】Pascal's Triangle
- [118]Pascal's Triangle
- Pascal's Triangle
- Pascal's Triangle II
- 几种常见的I/O模型及其区别
- apriori算法简单实现
- 数据结构——最大值最小化 (划分子序列)
- 实验三:栈和队列
- spring3,springMVC,Hibernate4整合开发
- Pascal Triangle
- uva 10534(最长上升子序列O(nlogn))
- MySQL获取刚插入的数据
- django 中Model一些笔记--收藏
- Sql Server2005数据库在还原时出现如下错误信息:
- struts2 action重定向
- Eight Docker Development Patterns
- 判断用户是否第一次使用软件版本
- 1011. World Cup Betting (20)