Как я могу найти точку, где * ежедневные * максимальные интервалы перекрываются? - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь рассчитать максимальное количество посетителей моего сервиса в день. У меня есть данные о времени начала и окончания сеанса каждого посетителя.

После поиска я получил подсказку по этой ссылке. Это код для получения максимального количества гостей.

Найдите точку, где перекрываются максимальные интервалы. Рассмотрим большую вечеринку, где ведется журнал регистрации времени входа и выхода гостя. Найдите время, когда в гостях будет максимум гостей. Обратите внимание, что записи в реестре расположены не в любом порядке.

# Program to find maximum guest 
# at any time in a party 
def findMaxGuests(arrl, exit, n): 

    # Sort arrival and exit arrays 
    arrl.sort(); 
    exit.sort(); 

    # guests_in indicates number of  
    # guests at a time 
    guests_in = 1; 
    max_guests = 1; 
    time = arrl[0]; 
    i = 1; 
    j = 0; 

    # Similar to merge in merge sort to  
    # process all events in sorted order 
    while (i < n and j < n): 

        # If next event in sorted order is  
        # arrival, increment count of guests 
        if (arrl[i] <= exit[j]): 

            guests_in = guests_in + 1; 

        # Update max_guests if needed 
            if(guests_in > max_guests): 

                max_guests = guests_in; 
                time = arrl[i]; 

            # increment index of arrival array 
            i = i + 1;  

        else: 
            guests_in = guests_in - 1; 
            j = j + 1; 

    print("Maximum Number of Guests =", 
           max_guests, "at time", time)
# Driver Code 
arrl = [1, 2, 10, 5, 5]; 
exit = [4, 5, 12, 9, 12]; 
n = len(arrl); 
findMaxGuests(arrl, exit, n);

С помощью этого кода выше, я могу получить максимальное количество за все время.

Example :

Input: arrl[] = {1, 2, 9, 5, 5}
       exit[] = {4, 5, 12, 9, 12}
First guest in array arrives at 1 and leaves at 4, 
second guest arrives at 2 and leaves at 5, and so on.

Output: 5
There are maximum 3 guests at time 5.

Однако мне нужно максимальное количество посетителей в день. У меня есть пара массивов (время начала и окончания), которые выглядят следующим образом.

[['2018-09-03T10:03:05.424000000']
 ['2018-09-03T10:10:11.715000000']
 ['2018-09-03T10:10:28.251000000']
 ...
 ['2020-01-28T03:01:44.958000000']
 ['2020-01-28T03:00:56.210000000']
 ['2020-01-28T03:58:14.315000000']]

Как мне отредактировать этот код, чтобы получить максимальное дневное число?

...