import junit.framework.TestCase; import java.util.ArrayList; import java.util.List; public class LeetCode04_2 extends TestCase { /** * * 118. 杨辉三角 * 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 * 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 * * 示例 1: * 输入: numRows = 5 * 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] * * 示例 2: * 输入: numRows = 1 * 输出: [[1]] */ /** * 时间复杂度:O(numRows ^2) * 空间复杂度:O(1)O(1)。不考虑返回值的空间占用。 */ public List<List<Integer>> generate(int numRows) { List<List<Integer>> res = new ArrayList<>(); for (int i = 1; i < numRows + 1; i++) { List<Integer> thisNumList = new ArrayList<>(); for (int j = 0; j < i; j++) { if (j == 0 || j == i - 1) { thisNumList.add(1); } else { thisNumList.add(res.get(i - 2).get(j - 1) + res.get(i - 2).get(j)); } } res.add(thisNumList); } return res; } public void test() { int[][] mat = new int[][]{{1, 2}, {3, 4}}; System.out.println(generate(5)); } }
标签:get,int,res,List,118,numRows,杨辉三角,LeetCode From: https://www.cnblogs.com/sueyyyy/p/16786602.html