您的位置:首页 > 其它

LeetCode - Pascal's Triangle

2016-01-13 15:42 369 查看
题目:

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]
]

思路:

递归

package recursion;

import java.util.List;
import java.util.ArrayList;

public class PascalsTriangle {

public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<List<Integer>>();;
List<Integer> row = new ArrayList<Integer>();
if (numRows == 1) {
row.add(1);
res.add(row);
} else if (numRows > 1){
res = generate(numRows - 1);
List<Integer> lastRow = res.get(numRows - 2);
int size = lastRow.size();
for (int i = 0; i < size; ++i) {
row.add((i > 0 ? lastRow.get(i - 1) : 0) + lastRow.get(i));
}
row.add(lastRow.get(size - 1));
res.add(row);
}
return res;
}

public static void main(String[] args) {
PascalsTriangle p = new PascalsTriangle();
List<List<Integer>> res = p.generate(5);
for (List<Integer> row : res) {
for (int i : row)
System.out.print(i + " ");
System.out.println();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: