题目描述:
思路:
杨辉三角的特点就是,每行的第一个元素和最后一个元素都是1;
其他元素 = 上一行与当前元素对应位置的元素 + 上一行与当前元素对应位置的元素的前一个元素
那么我们一个集合来存储当前行的所有元素,然后再使用一个集合去存储所有行的集合。
class Solution { public List<List<Integer>> generate(int numRows) {
List<List<Integer>> listOut = new ArrayList<>(); List<Integer> listIn = new ArrayList<>(); //创建一个临时列表存储上次的结果集合 List<Integer> temp = listIn; for(int i = 1;i<=numRows;i++){ temp = getRows(temp,i); listOut.add(temp); } return listOut; } //通过上次的结果集合得到当前行的结果 public static ArrayList<Integer> getRows(List<Integer> list,int n){ //创建一个数组来存储当前结果集合 ArrayList<Integer> integers = new ArrayList<>(); for(int i = 0;i<n;i++){ if(i==0||i==n-1){ integers.add(1); }else{ integers.add(list.get(i-1)+list.get(i)); } } return integers; } }
标签:int,ArrayList,元素,List,集合,杨辉三角 From: https://www.cnblogs.com/zhengfuweilai/p/17161901.html