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