Отсутствует тестовый пример в задаче выбора активности - PullRequest
0 голосов
/ 20 февраля 2019

Я решаю проблему выбора активности на веб-сайте, где мне нужно найти максимальное количество действий, которые я могу выполнить.Сначала я читаю количество тестовых случаев (t), а затем для каждого тестового случая количество действий (n).Ввод в следующем формате:

2
4
Maths 16:00 18:00
ComputerScience 12:00 13:00
Physics 12:30 14:00
Chemistry 14:00 16:30
5
Geography 14:00 16:00
History 12:00 14:30
Arts 14:00 16:30
Literature 12:30 13:30
German 13:30 15:00

Я написал код, приведенный ниже.Он проходит все тестовые случаи, кроме одного.Чего мне не хватает?

import java.time.LocalTime;
import java.util.*;

class solution {

    static class Subject {

        String name;
        LocalTime start;
        LocalTime end;

        public Subject(String name, String startString, String endString) {
            this.name = name;
            this.start = LocalTime.parse(startString);
            this.end = LocalTime.parse(endString);
        }
    }

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt(), i;
        while (t > 0) {
            int count = 1,n;
            LocalTime end;
            n = sc.nextInt();
            sc.nextLine();
            if(n>0)
            {
            List<Subject> list = new ArrayList<Subject>();
            for (i = 0; i < n; i++) {
                String[] input = sc.nextLine().split(" ");
                Subject subject = new Subject(input[0].trim(), input[1].trim(), input[2].trim());
                list.add(subject);
            }
            Collections.sort(list, (s1, s2) -> s1.end.compareTo(s2.end));
            end = list.get(0).end;
            i = 1;
            while (i < n) {
                if(!list.get(i).start.isBefore(end)) {
                    count++;
                    end = list.get(i).end;
                }
                i++;
            }
            System.out.println(count);
        }
        else
        {System.out.println("0");}
            t--;
        }

    }
}

1 Ответ

0 голосов
/ 20 февраля 2019

Что-нибудь указано о действиях, которые начинаются именно тогда, когда заканчивается другое?

...