代码主要思想
我们把杨辉三角看作一个直角三角形如图:
从右边的图我们看出来我们需要一个List<List>类型的对象,其中存储List>对象,达到效果,很容易看出来中间数字的求法,由于面向对象的思想,他们之间的关系为members.get(i).get(j)=members.get(i-1).get(j-1)+members.get(i-1).get(j);
完整代码
import java.util.ArrayList;
import java.util.List;
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> members=new ArrayList<>();
List<Integer> member=new ArrayList<>();
members.add(member);
member.add(1);//第一行
for (int i=1;i<numRows;i++){
List<Integer> curCow=new ArrayList<>();
members.add(curCow);
members.get(i).add(1);
for (int j=1;j<i;j++){
List<Integer> preCow=members.get(i-1);
members.get(i).add(members.get(i-1).get(j-1)+members.get(i-1).get(j));
}
members.get(i).add(1);
}
return members;
}
}
public class TestTriangle {
public static void main(String[] args) {
Solution solution=new Solution();
System.out.println(solution.generate(5));
}
}