Kotlin Leetcode - 118. Pascal’s Triangle
class Solution {
fun generate(numRows: Int): List<List<Int>> {
}
}
解題思路
這一題很單純
以迴圈持續的算出下一層巴斯卡三角形的內容即可
如果偏好函數式的風格
可以使用 generateSequence
產生內容
Kotlin 參考解答
點擊展開解答
class Solution {
fun generate(numRows: Int): List<List<Int>> {
if (numRows == 0) return listOf()
val res = mutableListOf(listOf(1))
for (i in 1 until numRows) {
val list = mutableListOf(1)
for (j in 1 until i) {
list.add(res[i - 1][j - 1] + res[i - 1][j])
}
list.add(1)
res.add(list)
}
return res
}
}
單一表達式內完成的方式如下
class Solution {
fun generate(numRows: Int) =
generateSequence(listOf(1)) { prev ->
listOf(1) + prev.windowed(2).map { it.sum() } + listOf(1)
}.take(numRows)
.toList()
}
回到 leetcode 列表