leetcode-Pascal's Triangle(I、II)
来源:互联网 发布:淘宝直播添加到首页 编辑:程序博客网 时间:2024/04/30 02:44
Problems:
(1)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]
]
(2)Given an index k, return the kth row of the Pascal’s triangle.
For example, given k = 3,
Return [1,3,3,1].
Solution:
(1)其实这个问题并不难,listAll中包含listOne,在求该个listOne的时候需要调用前一个listOne.
public class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> listAll = new ArrayList<List<Integer>>(); if(numRows == 0) return listAll; List<Integer> listOne = new ArrayList<Integer>(); listOne.add(1); listAll.add(one); for(int i = 1 ; i < numRows ; i++){ List<Integer> newlist = new ArrayList<Integer>(); newlist.add(1); for(int j = 1 ; j < i ; j++){ newlist.add(j,listAll.get(i-1).get(j-1)+listAll.get(i-1).get(j)); } newlist.add(1); listAll.add(i,newlist); } return listAll; }}
***但是我犯了一个非常难以找出来的错误,发出来与大家共享。我初始化了一个公用listOne,在for循环中,每次都清空listOne,也就是listOne.clear(),然后再放下一组数据。 注意,这样做会影响所有跟listOne有关的变量。比如listAll中存储的listOne也会被清空。所以不要轻易用clear()命令。*** 后来改成在for循环中,每次新定义一个newlist,这样的话就不会对前一个newlist造成影响,更不会影响listAll这个list了。
(2) 其实第一个问题做出来了,这个问题的思路和第一个一样。
不同的是,这里需要单独用一个list保存上一个数据。
public class Solution { public List<Integer> getRow(int rowIndex) { List<Integer> one = new ArrayList<Integer>(); one.add(1); //第0行 if(rowIndex == 0) return one; //从第1行开始 for(int i = 1 ; i <= rowIndex ; i++){ List<Integer> newlist = new ArrayList<Integer>(); newlist.add(1); for(int j = 1 ; j < i ; j++){ newlist.add(j,one.get(j-1)+one.get(j)); } newlist.add(1); one = newlist; } return one; }}
0 0
- leetcode-Pascal's Triangle(I、II)
- [Leetcode] Pascal's Triangle I | II
- LeetCode - Pascal's Triangle I && II
- [leetcode题后感]Pascal‘s Triangle I II
- leetcode -day13 Valid Palindrome & Triangle & Pascal's Triangle I II
- Pascal's Triangle I & II
- Pascal's Triangle I,II
- 【leetcode】Pascal's Triangle II(Java)
- LeetCode(119) Pascal's Triangle II
- LeetCode Pascal's Triangle II
- LeetCode: Pascal's Triangle II
- [LeetCode] Pascal's Triangle II
- [Leetcode] Pascal's Triangle II
- 【leetcode】Pascal's Triangle II
- LeetCode - Pascal's Triangle II
- Leetcode: Pascal's Triangle II
- LeetCode-Pascal's Triangle II
- [leetcode] Pascal's Triangle II
- 人脸识别:即使不上传任何照片依然能跟踪你的个人信息
- Android基础Layout介绍
- nginx
- ContentProvider
- 盲打记录
- leetcode-Pascal's Triangle(I、II)
- java.util.ArrayList cannot be cast to entity.Type
- CString与string、char*的区别和转换
- node.js操作相关
- git reset和git checkout
- Android Camera 架构
- Window对象
- 简单说说rem布局
- linux防火墙及端口开关设置