首页 > 解决方案 > 程序不断说缺少退货声明

问题描述

我的程序应该传递 2 个数组列表、到达和持续时间,并且应该返回基本上可以不重叠地发生的事件的数量。我做的最后一件事是添加最后的 else if 语句以将最后一次到达视为可能发生的事件。但是,尽管有返回语句,但我的代码不断给出无返回语句错误。

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

标签: java

解决方案


您编写的 return 语句位于不正确的 for 循环中。请按照以下代码

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

推荐阅读