[LeetCode] 118. Pascal's Triangle Java

题目:

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]
]

 题意及分析:给出一个杨辉三角的前numRow行。题比较简单,直接产生每一行,然后添加进去即可,每一行的第一个数为1,第二行开始最后一个数也为1,中间的数由上一行产生。

代码:

 

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> result = new ArrayList<>();

        for(int i=1;i<=numRows;i++){
            List<Integer> list = new ArrayList<>();
            list.add(1);  //每行第一个数为1
            List<Integer> preRowList = new ArrayList<>();  //取出上一行数据
            if(result.size()>1)
                preRowList = result.get(result.size()-1);
            for(int k=1;k<i-1;k++){       //长生每行中间的数
                list.add(preRowList.get(k-1)+preRowList.get(k));
            }
            if(i>=2)      //第二行开始每一行最后都为1
                list.add(1);
            result.add(list);
        }
        return result;
    }
}

 

 

 

 


 
Seen this question in a real inte
posted @ 2017-11-10 10:22  荒野第一快递员  阅读(175)  评论(0编辑  收藏  举报