第二个应该优化一下
package day20190414;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
/**
* 杨辉三角的问题
* 输入: 5
* 输出:
* [
* [1],
* [1,1],
* [1,2,1],
* [1,3,3,1],
* [1,4,6,4,1]
* ]
*
*/
public class YangHuiSanJiao {
public static void main(String[] args) {
System.out.println(getRow(5));
}
public static List<List<Integer>> generate(int numRows) {
//用于返回的lists
List<List<Integer>> lists = new ArrayList<>();
//用作每次计算的list
List<Integer> list = new ArrayList<>();
if (numRows == 0) {
return lists;
}
//第一层
list.add(1);
lists.add(list);
if (numRows == 1) {
return lists;
}
//第二层及以上
for (int i = 2; i <= numRows; i++) {
//新创建一个list用来存放我想构建的这一层
List <Integer>list1 = new ArrayList<>();
//添加开头的那一个1
list1.add(1);
for (int j = 0; j < list.size() -1; j++) {
list1.add(list.get(j) + list.get(j+1));
}
//加上尾部的1
list1.add(1);
//更新我们list
list = list1;
//把这一层给加入到我们的lists中
lists.add(list);
}
return lists;
}
public static List<Integer> getRow(int rowIndex) {
//用作返回的list
List<Integer> list = new ArrayList<>();
list.add(1);
//第一层
if (rowIndex == 0) {
return list;
}
//第二层及以上
for (int i = 1; i <= rowIndex; i++) {
//新创建一个list用来存放我想构建的这一层
List <Integer>list1 = new ArrayList<>();
//添加开头的那一个1
list1.add(1);
for (int j = 0; j < list.size() -1; j++) {
list1.add(list.get(j) + list.get(j+1));
}
//加上尾部的1
list1.add(1);
//更新我们list
list = list1;
}
return list;
}
}