List集合实现杨辉三角
杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
List实现,每一行为一个list,把每一行又放入一个大的list中
List嵌套List,List中又存放了List,里层的List为每一行的数字,外层的List存放小的List.
代码实现:
import java.util.*;
public class TestDemo4 {
public static List<List<Integer>> generate(int numRow){
List<List<Integer>> triangle = new ArrayList<>();
if(numRow == 0){
return triangle;
}
triangle.add(new ArrayList<>());
triangle.get(0).add(1);
for (int i = 1;i < numRow;i++){
List<Integer> curRow = new ArrayList<>();
curRow.add(1);
//记录当前行的上一行
List<Integer> prevRow = triangle.get(i-1);
for(int j = 1;j < i;j++){
int num = prevRow.get(j-1)+prevRow.get(j);
curRow.add(num);
}
curRow.add(1);
triangle.add(curRow);
}
return triangle;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要输出的杨辉三角的行数:");
int n = scanner.nextInt();
System.out.println(generate(n));
}
}