gpt4 book ai didi

Java Arraylist 程序失败测试

转载 作者:行者123 更新时间:2023-12-04 10:24:42 26 4
gpt4 key购买 nike

我正在创建一个程序,当给定一个列表时,它返回一个新的整数列表,其中前两个元素保持不变,后面的每个元素是原始列表中以该位置结尾的三个元素的中值。例如,给定列表:[1, 2, 3, 4, 5, 6, 7, 8, 9] ,程序将返回:[1, 2, 2, 3, 4, 5, 6, 7, 8] .

这是我编写的代码,在那里我得到了正确的结果,但它使我的测试人员失败了。我不确定我是否遗漏了一个奇怪的案例。

最佳答案

是的,您错过了一些案例:
如果一个或多个数字相等,您的代码不会计算中位数。

根据您的代码,解决方案将起作用:

    public static List<Integer> method(List<Integer> items) {
List<Integer> list = new ArrayList<Integer>();
int size = items.size();
if (size == 0) {
list = Arrays.asList();
} else if (size == 1) {
int first = items.get(0);
list.add(first);
} else if (size == 2) {
int first = items.get(0);
list.add(first);
int second = items.get(1);
list.add(second);
} else {
int first = items.get(0);
int second = items.get(1);
list.add(first);
list.add(second);
for (int i = 2; i < size; i++) {
int med;
if (items.get(i) <= items.get(i - 1) && items.get(i) >= items.get(i - 2)
|| items.get(i) >= items.get(i - 1) && items.get(i) <= items.get(i - 2)) {
med = items.get(i);

} else if (items.get(i - 1) <= items.get(i) && items.get(i - 1) >= items.get(i - 2)
|| items.get(i - 1) >= items.get(i) && items.get(i - 1) <= items.get(i - 2)) {
med = items.get(i - 1);
} else {
med = items.get(i - 2);
}
list.add(med);
}
}
return list;
}

关于Java Arraylist 程序失败测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60670511/

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