上述代码存在这个问题:Line 4: Char 22: error: unresolved reference: maxByOrNull val m = nums.maxByOrNull { it.size }?.size ?: 0 ^ Line 4: Char 36: error: unresolved reference: it val m = nums.maxByOrNull { it.size }?.size ?: 0 ^
时间: 2024-02-10 18:09:31 浏览: 163
这个问题是由于 `maxByOrNull` 函数在 Kotlin 1.3 版本之前不存在所导致的。
你可以将代码中的 `maxByOrNull` 函数替换成 `maxBy` 函数,并且在后面添加 `?.size`,这样就可以解决问题了。修改后的代码如下:
```kotlin
fun findDiagonalOrder(nums: List<List<Int>>): IntArray {
val n = nums.size
val m = nums.maxBy { it.size }?.size ?: 0
val res = IntArray(n * m)
var k = 0
for (i in 0 until n + m - 1) {
for (j in 0..i) {
val x = j
val y = i - j
if (x >= n || y >= m) continue
res[k++] = nums[x][y]
}
if (i % 2 == 0) {
var l = k - 1
for (j in k - i - 1 until k / 2) {
res[j] = res[l].also { res[l--] = res[j] }
}
}
}
return res
}
```
这里的修改只是将 `maxByOrNull` 替换为 `maxBy` 并添加 `?.size`,其他部分的代码都没有变化。
阅读全文