gpt4 book ai didi

java - 一些测试用例满足,而另一些则不满足

转载 作者:行者123 更新时间:2023-12-02 00:35:33 28 4
gpt4 key购买 nike

我的程序应该传递 2 个数组列表、到达时间和持续时间,并且应该返回基本上可以在不重叠的情况下发生的事件数量。然而,很多测试用例没有成功通过。下面显示了预期的输出:

arrivals = [1,3,3,5,7]
duration = [2,2,1,2,1]

第一个人于 1 点到达,停留 2 小时,然后离开。 2 人 3 点到达,但只允许 1 人出席 2 或 1 小时。下一个人在 5 点到达,展示 2 小时。最后一人于 7 点到达,并展示 1 小时。答案输出应该是 4,因为 4 个人能够呈现。以下是我当前的计划:

class Result {
public static int maxEvents(List<Integer> arrival,List<Integer> duration) {
int counter = 0;
if (arrival.size() == 0) {
counter = 0;
} else {
for (int i = 0; i < arrival.size() - 1; i++) {
if (arrival.get(i) + duration.get(i) <= arrival.get(i + 1)) {
counter++;
} else if (arrival.get(i).equals(arrival.get(i + 1))) {
counter++;
i++;
} else if (arrival.get(arrival.size()-1).equals(arrival.get(i))) {
counter++;
}
}
}
return counter;
}
}

该程序适用于以下测试用例:

arrival = [1,1,1,1,4]
duration = [10,3,4,6,2]
Output: 2

但在以下情况下会失败:

arrival = [1,3,5]
duration = [2,2,2]
Expected:3
Mine:2

或者:

 arrival = [1]
duration = [5]
Expected = 1
Mine = 0

我似乎无法看出问题所在。

有用户在评论中提交了自己对该问题的逻辑,下面是植入:

class Result {
public static int maxEvents(List<Integer> arrival,List<Integer> duration) {
int counter = 0;
if (arrival.size() == 0) {
return 0;
} else {
counter = 1;
ArrayList <Integer> timeseq = new ArrayList<Integer>();
for (int i = 0;i< arrival.size(); i++) {
timeseq.add(arrival.get(i));
timeseq.add(arrival.get(i)+duration.get(i));
}
for (int j =1; j<= timeseq.size()-2; j+=2) {
if(timeseq.get(j) <= timeseq.get(j+1)) {
counter++;
}
}
return counter;
}
}
}

此代码未通过测试用例

 arrival = (1,1,1,1,4) duration = (10,3,6,4.2)
Expected = 2
Mine = 1

最佳答案

也许您混淆了 .size() 和 .length()。这些是不同的方法,它们有不同的返回。考虑@Nexevis 的回答,也许删除“-1”,因为您正在调用数组的大小。

关于java - 一些测试用例满足,而另一些则不满足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57980205/

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