杨辉三角,是二项式系数在三角形中的一种几何排列,每个数等于它上方两数之和。
用数据结构来实现杨辉三角
class Solution{
public List<List <Integer>> generate(int Rew){
List<List<Integer>>ret=new ArrayList<>();
List<Integer>list=new ArrayList<>();
list.add(1);
ret.add(list);
for (int i = 1; i < Rew; i++) {
List<Integer>curRew=new ArrayList<>();
curRew.add(1);
List<Integer>preRew=ret.get(i-1);
for (int j = 1; j < i; j++) {
int val=preRew.get(j)+preRew.get(j-1);
curRew.add(val);
curRew.add(1);
ret.add(curRew);
}
}
return ret;
}
}
1、首先定义一个多维数组:
public List<List <Integer>> generate(int Rew){ //Integer类型的二维数组,Rew表示行数 List<List<Integer>>ret=new ArrayList<>();
2、创建第一行List数组:
List<Integer>list=new ArrayList<>(); list.add(1);//在数组中添加一个1 ret.add(list);//将List数组加入多维数组中
3、创建第二行至最后一行
for (int i = 1; i < Rew; i++) {//从第二行到Rew-1行 List<Integer>curRew=new ArrayList<>();//创建curRew数组,根据for循环,创建多个数组 curRew.add(1); //每行第一个元素都是1 List<Integer>preRew=ret.get(i-1); //获取上一行 for (int j = 1; j < i; j++) { int val=preRew.get(j)+preRew.get(j-1); //除第一个和最后一个元素,其余都为上一行的列为j和前一个j-1的元素相加 curRew.add(val);//将元素放入数组中 curRew.add(1);//最后一个元素为1 ret.add(curRew);//添加到多维数组中 } } return ret;//返回ret } }