输入 count = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]的时候,没有通过!
时间: 2023-09-13 14:05:19 浏览: 22
这个样例的问题在于样本中存在 256,而题目中给定的样本元素范围是 0 到 255。因此,我们需要将样本中的元素范围截断到 0 到 255。这可以通过将所有大于 255 的元素设置为 255 来实现。以下是修改后的代码:
```kotlin
class Solution {
fun sampleStats(count: IntArray): DoubleArray {
val truncatedCount = count.copyOf(256)
val min = truncatedCount.indexOfFirst { it > 0 }.toDouble()
val max = truncatedCount.indexOfLast { it > 0 }.toDouble()
val sum = truncatedCount.foldIndexed(0.0) { i, acc, c -> acc + i * c.toDouble() }
val mean = sum / truncatedCount.sum()
val mid = (truncatedCount.sum() + 1) / 2
var mode = 0.0
var modeCount = 0
for (i in truncatedCount.indices) {
if (truncatedCount[i] > modeCount) {
mode = i.toDouble()
modeCount = truncatedCount[i]
}
}
var median = 0.0
var countSoFar = 0
var i = 0
while (i < truncatedCount.size) {
countSoFar += truncatedCount[i]
if (mid <= countSoFar) {
median = i.toDouble()
if (countSoFar == mid && truncatedCount[i] > 1) {
for (j in i + 1 until truncatedCount.size) {
if (truncatedCount[j] > 0) {
median = (median + j) / 2.0
break
}
}
}
break
}
i++
}
return doubleArrayOf(min, max, mean, median, mode)
}
}
```
这个解法的时间复杂度、空间复杂度等与之前的解法相同,只是在计算最小值和最大值时,使用了 `indexOfFirst` 和 `indexOfLast` 方法的时候,将 count 数组的长度截断为 256。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)