Leetcode 118 杨辉三角

2018-08-26 17:17:58来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

 

本题属于数组类题目,大体思路是每一行的首个和结尾一个数字都是1,从第三行开始,中间的每个数字都是上一行的左右两个数字之和。

代码实现,

public class Solution {

    public List<List<Integer>> generate(int numRows){
        List<List<Integer>> allrows = new ArrayList<List<Integer>>();   // 将list中嵌套一个list,并且实例化成新方法ArrayList
        ArrayList<Integer> row = new ArrayList<Integer>();                 //  对每一个list也进行实例化
        for(int i=0;i<numRows;i++){                                                  //  对杨辉三角的行数进行遍历,遍历行数;之后对索引0位置上加入数字1
            row.add(0, 1); 
            for(int j=1;j<row.size()-1;j++)                                           // 遍历杨辉三角下一层的list中每个数
            row.set(j, row.get(j)+row.get(j+1));                                   // 将上边两个数字加到下边
            allrows.add(new ArrayList<Integer>(row));                        //对全部航加上新list的集合
        }
        return allrows;                  //得出最终结果
   } 
}

summary:

本题主要利用双层的list嵌套,并能想到将上边两个list中的数加到新的row中;同时用两层循环。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:[六] 函数式接口的复合方法示例 predicate 谓词逻辑运算 Functio

下一篇:mysql数据库迁移到oracle数据库后 如何删除相同的数据