Pascal's Triangle -- LeetCode
来源:互联网 发布:中科大还有网络教育吗 编辑:程序博客网 时间:2024/05/30 04:49
原题链接: http://oj.leetcode.com/problems/pascals-triangle/
这道题比较简单,属于基础的数组操作。基本思路是每层保存前一行的指针,然后当前航数据根据上一行来得到,每个元素就是上一行两个相邻元素相加(第一个和最后一个元素是1)。算法时间复杂度应该是O(1+2+3+...+n)=O(n^2),空间上只需要二维数组来存储结果,不需要额外空间。代码如下:
这道题比较简单,属于基础的数组操作。基本思路是每层保存前一行的指针,然后当前航数据根据上一行来得到,每个元素就是上一行两个相邻元素相加(第一个和最后一个元素是1)。算法时间复杂度应该是O(1+2+3+...+n)=O(n^2),空间上只需要二维数组来存储结果,不需要额外空间。代码如下:
public ArrayList<ArrayList<Integer>> generate(int numRows) { ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); if(numRows<=0) return res; ArrayList<Integer> pre = new ArrayList<Integer>(); pre.add(1); res.add(pre); for(int i=2;i<=numRows;i++) { ArrayList<Integer> cur = new ArrayList<Integer>(); cur.add(1); for(int j=0;j<pre.size()-1;j++) { cur.add(pre.get(j)+pre.get(j+1)); } cur.add(1); res.add(cur); pre = cur; } return res;}这道题因为是求解每一行结果,所以空间上没什么好讲究的,Pascal's Triangle II只求解某一行的数据,反而可以在空间上进行精简,有兴趣的朋友可以看看哈。
59 3
- 【Leetcode】Pascal's Triangle (Pascal)
- LeetCode Pascal's Triangle
- [Leetcode] Pascal's Triangle
- LeetCode: Pascal's Triangle
- [LeetCode] Pascal's Triangle
- 【leetcode】Pascal's Triangle
- LeetCode - Pascal's Triangle
- [LeetCode]Pascal's Triangle
- Leetcode: Pascal's Triangle
- Pascal's Triangle --Leetcode
- LeetCode-Pascal's Triangle
- [leetcode] Pascal's Triangle
- LeetCode - Pascal's Triangle
- 【leetcode】Pascal's Triangle
- LeetCode | Pascal's Triangle
- Pascal's Triangle -leetcode
- [leetcode]Pascal's Triangle
- Leetcode Pascal's Triangle
- objective-c入门
- UVa 11646 Athletics Track
- win8 win8.1 升级 Update1 无法完成更新 解决方法
- Little and Big Endian
- 20140410-1 翻译学习作品
- Pascal's Triangle -- LeetCode
- 从零开始学android<ImageView和ImageButton的使用.十.>
- Pascal's Triangle II -- LeetCode
- Evaluate Reverse Polish Notation
- Python3.2官方文档教程---Set集合
- 水货的学习笔记之~java的按需输入与输出
- python 保存HTML时UTF-8问题
- Eclipse安装Maven插件
- 地方的第三方的身份的身份斯蒂芬