使用kotlin解决这个问题: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]] 提示: 1 <= numRows <= 30
时间: 2023-07-02 18:14:27 浏览: 116
好的,下面是使用 Kotlin 解决该问题的代码:
```kotlin
class Solution {
fun generate(numRows: Int): List<List<Int>> {
val result = mutableListOf<List<Int>>()
for (i in 0 until numRows) {
val row = mutableListOf<Int>()
for (j in 0..i) {
if (j == 0 || j == i) {
row.add(1)
} else {
row.add(result[i - 1][j - 1] + result[i - 1][j])
}
}
result.add(row)
}
return result
}
}
```
其中,generate 函数使用了一个二维列表来存储杨辉三角的每一行,外部循环控制行数,内部循环控制每一行的元素个数。当列数为 0 或者等于行数时,当前元素为 1;否则,当前元素为上一行中该列和上一列的元素之和。最后返回二维列表即可。
阅读全文