Сложность: easy
Дан массив интервалов времени встреч, где intervals[i] = [starti, endi]. Определите, может ли человек посетить все встречи.
Пример:
Input: intervals = [[0,30],[5,10],[15,20]]
Output: false
👨💻 Алгоритм:
1⃣Создайте функцию для проверки перекрытия двух интервалов:
Возвращайте true, если начало одного интервала находится внутри другого интервала.
2⃣Проверьте каждый интервал с каждым другим интервалом:
Если найдено перекрытие, верните false.
3⃣Если все интервалы проверены и перекрытий не найдено, верните true.
😎 Решение:
class Solution {
function overlap($interval1, $interval2) {
return ($interval1[0] >= $interval2[0] && $interval1[0] < $interval2[1]) ||
($interval2[0] >= $interval1[0] && $interval2[0] < $interval1[1]);
}
function canAttendMeetings($intervals) {
for ($i = 0; $i < count($intervals); $i++) {
for ($j = $i + 1; $j < count($intervals); $j++) {
if ($this->overlap($intervals[$i], $intervals[$j])) {
return false;
}
}
}
return true;
}
}Ставь 👍 и забирай 📚 Базу знаний