Этот пост является частью Алгоритмы решения проблем ряд.
Описание проблемы
Это Количество студентов проблема. Описание выглядит так:
Учитывая два целочисленных массива 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”