1- 思路
模拟
- 1- 定义 grid
- 2- 实现 递推公式
- 3- 初始化
- 4- 遍历递推收集结果
2- 实现
⭐118. 杨辉三角——题解思路
class Solution {
public List<List<Integer>> generate(int numRows) {
int[][] grid = new int[numRows][numRows];
for(int i = 0 ; i < numRows ; i++){
grid[i][0] = 1;
}
for(int i = 1 ; i < numRows;i++){
for(int j = 1 ; j <= i;j++){
grid[i][j] = grid[i-1][j-1] + grid[i-1][j];
}
}
List<List<Integer>> res = new ArrayList<>();
for(int[] nums: grid){
List<Integer> path = new ArrayList<>();
for(int i: nums){
if(i!=0){
path.add(i);
}
}
res.add(path);
}
return res;
}
}
3- ACM 实现
public class triangleS {
public static List<List<Integer>> triangle(int numRow){
int[][] grid = new int[numRow][numRow];
for(int i = 0 ; i < numRow ; i++){
grid[i][0] = 1;
}
for(int i = 1 ; i < numRow;i++){
for(int j = 1 ; j <= i;j++){
grid[i][j] = grid[i-1][j-1] + grid[i-1][j];
}
}
List<List<Integer>> res = new ArrayList<>();
for(int[] nums: grid){
List<Integer> path = new ArrayList<>();
for(int i: nums){
if(i!=0){
path.add(i);
}
}
res.add(path);
}
return res;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println("结果是"+triangle(n).toString());
}
}