【浅刷Java数据结构】LeetCode 118.杨辉三角

【浅刷Java数据结构】LeetCode 118.杨辉三角,第1张

题目链接: LeetCode 118.杨辉三角.
题目解析:

class Solution {
        public List<List<Integer>> generate(int numRows) {
            //由题目的返回值,先来实例化一个泛型类的List对象,该泛型类的参数类型为List,该对象的模型大致与二维数组相似
            List<List<Integer>> ret = new ArrayList<>();
            //实例化一个List对象,让他来存储第0行的元素。
            List<Integer> one = new ArrayList<>();
            //第0行就一个1,将他插入one中
            one.add(1);
            //将第0行插入到ret当中(ret中的元素类型就是List
            ret.add(one);
            
            for(int i=1;i<numRows;i++){
                //实例化一个List对象,让他来存储第1行的元素。
                List<Integer> curRow = new ArrayList<>();
                //每一行的第一个元素都为1
                curRow.add(1);
                //拿到上一行的元素
                List<Integer> preRow = ret.get(i-1);
                for(int j=1;j<i;j++){
                    int x = preRow.get(j-1)+preRow.get(j);
                    curRow.add(x);
                }
                //每一行的最后一个元素都为1
                curRow.add(1);
                //将每一行都插入ret当中。
                ret.add(curRow);
            }
            return ret;
        }
    }
}

总体的思路:

  1. 先利用 List< Integer > 类型的顺序表来存储每一行的元素,此时插入的元素是 int类型的数据
  2. 然后将每一行add到 List>类型的顺序表,此时插入的元素是 顺序表

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/786155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存