leetCode-Pascal's Triangle
来源:互联网 发布:2017怎么做淘宝客赚钱 编辑:程序博客网 时间:2024/05/29 17:34
Description:
Given numRows, generate the first numRows of Pascal’s triangle.
For example, given numRows = 5,Return
[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]
My Solution:
class Solution { public List<List<Integer>> generate(int numRows) { List list = new ArrayList(); for(int i = 1;i <= numRows;i++){ List<Integer> line = new ArrayList<Integer>(); for(int j = 0;j < i;j++){ if(j > 0 &&j < i - 1){ List<Integer>temp = new ArrayList<Integer>(); temp = (ArrayList<Integer>)list.get(list.size() - 1); line.add(temp.get(j - 1) + temp.get(j)); }else{ line.add(1); } } list.add(line); } return list; }}
Better Solution:
class Solution { public List<List<Integer>> generate(int numRows) { int[][] res = new int[numRows][]; if(numRows == 0) return (List) Arrays.asList(res); for(int i = 0; i < numRows; i++){ res[i] = new int[i+1]; for(int j = 0; j < i+1; j++){ if(j == 0 || j == i) res[i][j] = 1; else res[i][j] = res[i-1][j-1] + res[i-1][j]; } } return (List) Arrays.asList(res); }}
总结:利用二维数组,动态增加列的个数,填充元素,然后用Arrays.asList()将它转换为链表
阅读全文
0 0
- 【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
- Java开发练习7.1 Java集合框架
- 编排秩序册
- 自顶向下,逐步求精
- 我的算法学习之路(转载)
- 13.UE4中的事件调度(Event Dispatcher)
- leetCode-Pascal's Triangle
- cas4.2.7实现其它登陆系统和cas之间的认证,即其他登陆系统登陆后,cas不需要再次登陆,效果跟cas登陆一样
- 打印报表
- 一起Talk Android吧(第五十一回:Android中的Fragment嵌套二)
- java三大特性:(二)继承
- 数据结构–图(一)
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
- SQL的高级语句---2th
- [8]_谈谈常见的操作系统优缺点以及一些展望