杨辉三角
题目:

代码:
package stack_queue.leetcode;
import java.util.ArrayList;
import java.util.List;
public class Num118 {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> retList=new ArrayList<>();
//组装特殊的第一行和第二行
List<Integer> first=new ArrayList<>();
first.add(1);
retList.add(first);
if(numRows==1){
return retList;
}
//组装第二行[1,1]
List<Integer> sec=new ArrayList<>();
sec.add(1);
sec.add(1);
retList.add(sec);
if(numRows==2){
return retList;
}
//此时numRows至少是三行
for (int i = 3; i <=numRows ; i++) {
//[i,j]=[i-1,j-1]+[i-1,j]
//取得当前位置的前一行元素
List<Integer> prev=retList.get(i-1-1);
List<Integer> cur=new ArrayList<>();
//每一行的第一个元素都是1
cur.add(1);
//[i,j]=[i-1,j-1]+[i-1,j]
for (int j = 2; j <i ; j++) {
int tmpValue=prev.get(j-1-1)+prev.get(j-1);
cur.add(tmpValue);
}
cur.add(1);
retList.add(cur);
}
return retList;
}
}
运行截图:


该博客主要介绍了如何使用Java编程实现杨辉三角形的生成。代码中详细展示了从第一行到指定行数的杨辉三角形的创建过程,通过迭代计算每行的元素值。核心算法基于每行的元素由上一行的元素相加得到的原则。
1269

被折叠的 条评论
为什么被折叠?



