Pascal’s Triangle
Description
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]
]
Tags: Array
思路
题意是给出行数,输出帕斯卡尔三角形,很简单的模拟,就不多说了。
class Solution {
public List<List<Integer>> generate(int numRows) {
if (numRows == 0) return Collections.emptyList();
List<List<Integer>> list = new ArrayList<>();
for (int i = 0; i < numRows; ++i) {
List<Integer> sub = new ArrayList<>();
for (int j = 0; j <= i; ++j) {
if (j == 0 || j == i) {
sub.add(1);
} else {
List<Integer> upSub = list.get(i - 1);
sub.add(upSub.get(j - 1) + upSub.get(j));
}
}
list.add(sub);
}
return list;
}
}
kotlin(208ms/91.67%):
class Solution {
fun generate(numRows: Int): List<List<Int>> {
val list = ArrayList<ArrayList<Int>>()
for (i in 0 until numRows) {
val item = ArrayList<Int>()
item.add(1)
if (i > 1) {
for (j in 1 until i) {
val prev = list[i - 1]
item.add(prev[j - 1] + prev[j])
}
}
if (i > 0) item.add(1)
list.add(item)
}
return list
}
}
JavaScript:
var generate = function(numRows) {
let arr = []
for(var i = 1; i <= numRows; i++) {
if(i === 1) {
arr.push([1])
continue
}
if(i === 2) {
arr.push([1, 1])
continue
}
let innerArr = [1]
for(var j = 2; j < i; j++) {
innerArr.push(arr[i-2][j-2] + arr[i-2][j-1])
}
innerArr.push(1)
arr.push(innerArr)
}
return arr
};
结语
如果你同我们一样热爱数据结构、算法、LeetCode,可以关注我们 GitHub 上的 LeetCode 题解:LeetCode-Solution