Приветствую! Добрался до большой задачи о ресторане, уже заранее попадались на глаза отзывы о "капризности" валидатора при ее проверке, и на 10 этапе попался, возможно, как раз такой случай: никаких конкретных указаний о реализации метода нет, поэтому я написал его так, как смог придумать, долго тестировал - вроде список формируется правильно, но валидатор утверждает, что у меня в программе нет вообще ничего. Подозреваю, что это связано с введением специального поля класса для хранения лучшего из найденных списков, как переписать код по-другому - пока не придумал. Текст основного метода формирования списка:
private void getBestList (List<Advertisement> list, int index) {
    List<Advertisement> tempList = new ArrayList<>(list);
    if (getTotalDuration(list) <= timeSeconds) {
        if (getTotalAmount(list) > getTotalAmount(playList)) playList = new ArrayList<>(list);
        if (getTotalAmount(list) == getTotalAmount(playList) && getTotalDuration(list) > getTotalDuration(playList)) playList = new ArrayList<>(list);
        if (index < storage.list().size()) {
            getBestList(tempList, index + 1);
            tempList.add(storage.list().get(index));
            getBestList(tempList, index + 1);
        }
    }
}
Соответственно, возникает вопрос: стоит ли пытаться мучаться со своим решением (если оно вообще рабочее, вдруг я что-то не предусматриваю) или проще тупо найти в инете готовое, поскольку в данном случае пытаться предугадать, что именно хочет валидатор, можно месяцами? Заранее благодарю за любые ответы.