gpt4 book ai didi

java - 似乎无法让它发挥作用。无法按照我的意愿获得中位数

转载 作者:行者123 更新时间:2023-12-04 09:02:52 24 4
gpt4 key购买 nike

我无法得到中位数。我想要单词的中位数。很难从 for 中获取值(value)环形。

public class MedianWord {
static double medianWordLength(String words) {
String[] parts = words.split(" ");
int[] a;
double median = 0;

for (int i = 0; i < parts.length; i++) {
a = new int[parts[i].length()];
Arrays.sort(a);
if (a.length % 2 == 0) {
median = ((double) a[a.length / 2] + (double) a[a.length / 2 - 1]) / 2;
}
else
median = (double) a[a.length / 2];
}
return median;
}
}

最佳答案

循环的每次迭代都会覆盖 a带有新数组的数组。您需要将问题分为两部分 - 首先,迭代 parts数组并将其转换为数组 a的长度,然后找到该数组的中位数:

static double medianWordLength(String words) {
String[] parts = words.split(" ");
int[] a = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
a[i] = parts[i].length();
}

Arrays.sort(a);
if (a.length % 2 == 0) {
return ((double) a[a.length / 2] + (double) a[a.length / 2 - 1]) / 2;
}
else {
return a[a.length / 2];
}
}
边注:
使用流可以(可以说)更优雅地将单词转换为长度排序的数组:
int[] a = Arrays.stream(words.split(" ")).mapToInt(String::length).sorted().toArray();

关于java - 似乎无法让它发挥作用。无法按照我的意愿获得中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63526117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com