Минимальные платформы

Привет, я решаю проблему с вопросом ниже:

Дано время прибытия и отправления всех поездов, прибывающих на железнодорожную станцию. Найдите минимальное количество платформ, необходимое на вокзале, чтобы ни один поезд не оставался в ожидании. Учтите, что все поезда прибывают в один и тот же день и отправляются в один и тот же день. Время прибытия и отправления поезда никогда не может совпадать, но время прибытия одного поезда может быть равно времени отправления другого. В любой момент времени одна и та же платформа не может использоваться как для отправления поезда, так и для прибытия другого поезда. В таких случаях нужны разные платформы,

Input: N = 6 
arr =  [0900  0940 0950  1100 1500 1800]
dep = [0910 1200 1120 1130 1900 2000]
Output: 3
Explanation: 
Minimum 3 platforms are required to 
safely arrive and depart all trains.

Вот мой код:

class Node:
    def __init__(self,arrival,departure):
        self.arrival = int(arrival)
        self.departure = int(departure)


def minimumPlatform(n,arr,dep):
    s=[Node(arr[i],dep[i]) for i in range(n)]
    s = sorted(s,key=lambda x:x.departure)
    currentMax=1
    maxi = 1
    dep = s[0].departure
    for j in range(1,n):
        i = s[j]
        if i.arrival<=dep:
            currentMax+=1
            maxi = max(currentMax,maxi)
        else:
            currentMax=1
            dep = i.departure
    return maxi

то, что я сделал, отсортировал по отправлению и проверил максимальное количество перекрытий на графике (график прибытия и отправления на графике)

gfg не принимает мой ответ

моя интуиция верна или нет?


person MUTHURAJ D    schedule 24.01.2021    source источник
comment
Если вам нужна помощь с вашим кодом, сделайте его минимально воспроизводимым примером — любой должен иметь возможность вставить код в свой вопрос в файл и ничего не добавляя запустите его, чтобы увидеть ту же проблему, что и у вас. Да, вам нужно включить, например. импорт и минимальные данные, которые показывают проблему. Знаете ли вы данные, с которыми тестируется ваш код в gfg?   -  person barny    schedule 24.01.2021


Ответы (1)


Если у вас такие интервалы

A: [ ]
B:  [   ]
C:    [  ]
D:     [  ]

тогда правильное максимальное перекрытие равно {B, C, D}. Когда ваш код сканирует C, прибытие происходит после ухода A, поэтому currentMax сбрасывается в 1, эффективно отбрасывая B из дальнейшего рассмотрения. Конечным результатом является то, что ваш код возвращает 2 вместо 3.

person David Eisenstat    schedule 24.01.2021