Leetcode之Pascal's Triangle 问题
2017-09-22 19:31
357 查看
问题描述:
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]
]
问题来源:Pascal's Triangle (详细地址:https://leetcode.com/problems/pascals-triangle/description/)
思路分析:根据提示,我们可以看见这只是一个List里面嵌套了一个List,而且你会发现下面的是怎么延展开的:
1.首先每个list里面的第一个元素和最后一个元素都是1;
2.然后中间的元素都是由头上的两个元素加起来的。
所以,在这我们用i来表示第几个list,然后j来表示这个list里面的第j个元素。另外,i和j都是从0开始的,把上面的两个结论翻译过来就是:
1.if(j == 0 || j == i)
list.add(1);//这里采用了自动封箱操作
2.list.add(j, list.get(j - 1) + list.get(j));//代码中采用的是result.get(i - 1).get(j - 1).......是因为我们需要通过result取出里面的每一个list
不过最后我还给出了另外一种解法,不用通过get.get这种调用了,因为这样容易产生空指针异常,说回来还是第一种更好理解一些,更符合人类的惯性思维,不过第二种理解了也就不难了,毕竟不是啥高深的东西。
代码:
第一种添加的方法:
第二种添加的方法:
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]
]
问题来源:Pascal's Triangle (详细地址:https://leetcode.com/problems/pascals-triangle/description/)
思路分析:根据提示,我们可以看见这只是一个List里面嵌套了一个List,而且你会发现下面的是怎么延展开的:
1.首先每个list里面的第一个元素和最后一个元素都是1;
2.然后中间的元素都是由头上的两个元素加起来的。
所以,在这我们用i来表示第几个list,然后j来表示这个list里面的第j个元素。另外,i和j都是从0开始的,把上面的两个结论翻译过来就是:
1.if(j == 0 || j == i)
list.add(1);//这里采用了自动封箱操作
2.list.add(j, list.get(j - 1) + list.get(j));//代码中采用的是result.get(i - 1).get(j - 1).......是因为我们需要通过result取出里面的每一个list
不过最后我还给出了另外一种解法,不用通过get.get这种调用了,因为这样容易产生空指针异常,说回来还是第一种更好理解一些,更符合人类的惯性思维,不过第二种理解了也就不难了,毕竟不是啥高深的东西。
代码:
第一种添加的方法:
第二种添加的方法:
相关文章推荐
- Leetcode之Pascal's Triangle II 问题
- [LeetCode]-Pascal's Triangle I&II 杨辉三角问题
- [leetCode 118 & 119] Pascal's Triangle I && II (杨辉三角问题)
- leetcode--Pascal's Triangle II
- 2017.11.14 LeetCode - 118. Pascal's Triangle - 119. Pascal's Triangle II
- LeetCode题解:Pascal's Triangle II
- [LeetCode]119. Pascal's Triangle II
- Leetcode题解 118. Pascal's Triangle
- LeetCode - Pascal's Triangle
- LeetCode-Array-118. Pascal's Triangle
- LeetCode之Pascal's Triangle 的1和2
- 【一天一道LeetCode】#118. Pascal's Triangle
- LeetCode-118. Pascal's Triangle,119. Pascal's Triangle II
- LeetCode 119. Pascal's Triangle II
- Pascal's Triangle [LeetCode]
- Leetcode_c++: Pascal's TriangleII (119)
- LeetCode:Pascal's Triangle
- leetcode---Pascal's Triangle
- [C语言] leetcode 119. Pascal's Triangle II
- LeetCode Pascal's Triangle II