Рубрики
Без рубрики

Алгоритмы решения проблем: количество студентов

Решение алгоритмов проблем с TK. Теги с алгоритмами, Python, Computerscience, интервью.

Этот пост является частью Алгоритмы решения проблем ряд.

Описание проблемы

Это Количество студентов проблема. Описание выглядит так:

Учитывая два целочисленных массива Starttime и Конечное время и дано целое число Querytime Анкет

это Студент начал делать домашнее задание в то время Starttime [i] и закончил это в момент времени Конец времени [i] Анкет

Возврат Количество студентов выполнять домашнее задание в то время Querytime Анкет Более формально вернуть количество студентов, где Querytime лежит в интервале [StartTime [i], EndTime [i]] включительно.

Примеры

Input: startTime = [1,2,3], endTime = [3,2,7], queryTime = 4
Output: 1

Input: startTime = [4], endTime = [4], queryTime = 4
Output: 1

Input: startTime = [4], endTime = [4], queryTime = 5
Output: 0

Input: startTime = [1,1,1,1], endTime = [1,3,2,4], queryTime = 7
Output: 0

Input: startTime = [9,8,7,6,5,4,3,2,1], endTime = [10,10,10,10,10,10,10,10,10], queryTime = 5
Output: 5

Решение

Идея заключается в том, чтобы итерация через списки и сравнить их с Query_time Чтобы увидеть, находится ли это в интервале между временем начала и окончания. Если это так, просто увеличьте number_of_students прилавок. После окончания петли верните это значение.

def busy_student(start_time, end_time, query_time):
    number_of_students = 0

    for index in range(len(start_time)):
        start, end = start_time[index], end_time[index]

        if query_time >= start and query_time <= end:
            number_of_students += 1

    return number_of_students

Но мы также могли бы использовать Zip функционируйте для итерации через список одновременно:

def busy_student(start_time, end_time, query_time):
    number_of_students = 0

    for start, end in zip(start_time, end_time):
        if query_time >= start and query_time <= end:
            number_of_students += 1

    return number_of_students

Сложность времени выполнения O (n) где N количество целых чисел в start_time и end_time Анкет

Ресурсы

Оригинал: “https://dev.to/teekay/algorithms-problem-solving-number-of-students-5egc”