LeetCode 118 : Pascal's Triangle (Java)

来源:互联网 发布:最好的国外免费php空间 编辑:程序博客网 时间:2024/05/18 01:09

此题思路是首先对第一行和第二行两种特殊情况进行考虑。从第三行开始,列表头尾元素为1,中间元素是上一行对应两个元素的和(所谓对应是若本行下标为j,则对应为上一行的下标为j-1和j两个元素)。

public class Solution {    public List<List<Integer>> generate(int numRows) {        List<List<Integer>> pascal = new ArrayList<>();        for(int i=1;i<=numRows;i++) {           if(i == 1) {                List<Integer> list = new ArrayList<>();                list.add(1);                pascal.add(list);                continue;            }            if(i == 2) {                List<Integer> list = new ArrayList<>();                list.add(1);                list.add(1);                pascal.add(list);                continue;            }             List<Integer> list = new ArrayList<>();            for(int j=0;j<i;j++) {                if(j == 0) {                    list.add(1);                    continue;                }                if(j == i-1) {                    list.add(1);                    break;                }                list.add(pascal.get(i-2).get(j-1) + pascal.get(i-2).get(j));            }            pascal.add(list);        }        return pascal;    }}
0 0
原创粉丝点击