刷题之旅从数组类型的题目开始。第八道题目是杨辉三角,对应leetcode的题号为118。
题目描述
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
1 2 3 4 5 6 7 8 9
| 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
|
解题思路
见注释。
提交代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
import java.util.*; class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> res = new ArrayList<>(); List<Integer> rowList = null; int[][] arr = new int[numRows][numRows]; for(int i=0;i<numRows;i++){ rowList = new ArrayList<>(); arr[i][0] = 1; rowList.add(arr[i][0]); for(int j=1;j<=i;j++){ arr[i][j] = arr[i-1][j-1] + arr[i-1][j]; rowList.add(arr[i][j]); } res.add(rowList); } return res; } }
|