本文主要是介绍leetcode118~Pascal's Triangle,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Given numRows, generate the first numRows of Pascal’s triangle.
For example, given numRows = 5,
Return
[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]
]
public class PascalTriangle {public List<List<Integer>> generate(int rowNums) {//使用集合(与一维数组实现有相似)List<List<Integer>> res = new ArrayList<>();List<Integer> row = new ArrayList<>();for(int i=0;i<rowNums;i++) {row.add(0, 1);for(int j=1;j<i;j++) {row.set(j, row.get(j)+row.get(j+1));}//这里重更新建立新的集合,防止覆盖res.add(new ArrayList<>(row));}return res;}//使用二维数组public List<List<Integer>> generate2(int rowNums) {List<List<Integer>> res = new ArrayList<>();if(rowNums==0) return res;int[][] arr = new int[rowNums][rowNums];//初始化for(int i=0;i<rowNums;i++) {arr[i][0]=1;arr[i][i]=1;}for(int i=2;i<rowNums;i++) {for(int j=1;j<i;j++) {arr[i][j] = arr[i-1][j-1]+arr[i-1][j];}}for(int i=0;i<arr.length;i++) {List<Integer> list = new ArrayList<>();for(int j=0;j<=i;j++) {list.add(arr[i][j]);}res.add(list);}return res;}
}
这篇关于leetcode118~Pascal's Triangle的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!