【Leetcode】118. Pascal's Triangle
来源:互联网 发布:海贼王启航礼包淘宝 编辑:程序博客网 时间:2024/06/06 08:40
方法一:递归
思路:
(1)若numRows不大于0,则直接返回result。
(2)若numRows为1,则构造相应result并返回。
(3)否则,递归求前numRows-1行的结果res,加入result。再依次遍历res的最后一行,每相邻两个元素求和得到对应位置的数,在前后加上1后加入result。
public class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> result = new ArrayList<List<Integer>>(); if (numRows <= 0) return result; if (numRows == 1) { List<Integer> temp = new ArrayList<Integer>(); temp.add(1); result.add(temp); return result; } List<Integer> temp = new ArrayList<Integer>(); temp.add(1); List<List<Integer>> res = generate(numRows - 1); result.addAll(res); int size = res.size(); List<Integer> tmp = res.get(size - 1); int len = tmp.size(); for (int i = 0; i < len - 1; i++) temp.add(tmp.get(i) + tmp.get(i + 1)); temp.add(1); result.add(temp); return result; }}Runtime:1ms
方法二:非递归
思路:
(1)若numRows不大于0,则直接返回result。
(2)先构造第1行的结果放入result。
(3)从第2行开始,依次求每一行的结果。前一行的每相邻两个元素求和得到当前行对应位置的数,在前后加上1后加入result。
public class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> result = new ArrayList<List<Integer>>(); if (numRows <= 0) return result; List<Integer> temp = new ArrayList<Integer>(); temp.add(1); result.add(temp); for (int i = 1; i < numRows; i++) { temp = new ArrayList<Integer>(); temp.add(1); int size = result.size(); List<Integer> tmp = result.get(size - 1); int len = tmp.size(); for (int j = 0; j < len - 1; j++) temp.add(tmp.get(j) + tmp.get(j + 1)); temp.add(1); result.add(temp); } return result; }}Runtime:1ms
1 0
- LeetCode 118. Pascal's Triangle
- [LeetCode]118.Pascal's Triangle
- 【LeetCode】118.Pascal's Triangle
- [Leetcode] 118. Pascal's Triangle
- 【leetcode】118. Pascal's Triangle
- 【Leetcode】118. Pascal's Triangle
- 118. Pascal's Triangle LeetCode
- 【LeetCode】118. Pascal's Triangle
- [LeetCode]118. Pascal's Triangle
- Leetcode 118. Pascal's Triangle
- LeetCode *** 118. Pascal's Triangle
- leetcode 118. Pascal's Triangle
- LeetCode 118. Pascal's Triangle
- leetcode-118. Pascal's Triangle
- 118.[Leetcode]Pascal's Triangle
- LeetCode 118. Pascal's Triangle
- 【leetcode】118. Pascal's Triangle
- LeetCode - 118. Pascal's Triangle
- "ora-01502 索引或这类索引的分区处于不可用状态"的解决方案
- Anaconda 4.2 ---conda使用(Windows)
- 条件随机场及其应用
- javascript之prototype
- 教您使用java爬虫gecco抓取JD全部商品信息(一)
- 【Leetcode】118. Pascal's Triangle
- css样式的使用一
- 【腾讯优测干货分享】如何降低App的待机内存(五)——优化dex相关内存及本章总结
- PAT BASIC LEVEL 1008. 数组元素循环右移问题 (20)
- python调用window dll和linux so例子
- Miktex 2.9 + Texmaker 中文显示
- ERROR: Exception when publishing, exception message [Failure] Build step 'Send files or execute comm
- 一个简单的例子:javascript实现日期的比较(3)
- Sphinx 的介绍和原理探索