252. Meeting Rooms
O texto da tarefa é traduzido do russo para o idioma selecionado. O código permanece sem alterações.
Дан array интервалов времени встреч, где intervals[i] = [starti, endi]. Определите, может ли человек посетить все встречи.
Exemplo:
Input: intervals = [[0,30],[5,10],[15,20]]
Output: false
C# solução
correspondente/originalclass Solution {
public bool Overlap(int[] interval1, int[] interval2) {
return (interval1[0] >= interval2[0] && interval1[0] < interval2[1]) ||
(interval2[0] >= interval1[0] && interval2[0] < interval1[1]);
}
public bool 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;
}
}
C++ solução
rascunho automático, revisar antes de enviar#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public bool Overlap(vector<int>& interval1, vector<int>& interval2) {
return (interval1[0] >= interval2[0] && interval1[0] < interval2[1]) ||
(interval2[0] >= interval1[0] && interval2[0] < interval1[1]);
}
public bool CanAttendMeetings(int[][] intervals) {
for (int i = 0; i < intervals.size(); i++) {
for (int j = i + 1; j < intervals.size(); j++) {
if (Overlap(intervals[i], intervals[j])) {
return false;
}
}
}
return true;
}
}
Java solução
correspondente/originalclass 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]);
}
}
JavaScript solução
correspondente/originalclass Solution {
overlap(interval1, interval2) {
return (interval1[0] >= interval2[0] && interval1[0] < interval2[1]) ||
(interval2[0] >= interval1[0] && interval2[0] < interval1[1]);
}
canAttendMeetings(intervals) {
for (let i = 0; i < intervals.length; i++) {
for (let j = i + 1; j < intervals.length; j++) {
if (this.overlap(intervals[i], intervals[j])) {
return false;
}
}
}
return true;
}
}
Python solução
correspondente/originalclass Solution:
def canAttendMeetings(self, intervals: List[List[int]]) -> bool:
def overlap(interval1: List[int], interval2: List[int]) -> bool:
return (interval1[0] >= interval2[0] and interval1[0] < interval2[1]
or interval2[0] >= interval1[0] and interval2[0] < interval1[1])
for i in range(len(intervals)):
for j in range(i + 1, len(intervals)):
if overlap(intervals[i], intervals[j]):
return False
return True
Go solução
correspondente/originalpackage main
type Solution struct{}
func (s Solution) Overlap(interval1, interval2 []int) bool {
return (interval1[0] >= interval2[0] && interval1[0] < interval2[1]) ||
(interval2[0] >= interval1[0] && interval2[0] < interval1[1])
}
func (s Solution) CanAttendMeetings(intervals [][]int) bool {
for i := 0; i < len(intervals); i++ {
for j := i + 1; j < len(intervals); j++ {
if s.Overlap(intervals[i], intervals[j]) {
return false
}
}
}
return true
}
Algorithm
1️⃣
Создайте функцию для проверки перекрытия двух интервалов:
Возвращайте true, если начало одного интервала находится внутри другого интервала.
2️⃣
Проверьте каждый интервал с каждым другим интервалом:
Если найдено перекрытие, return false.
3️⃣
Если все интервалы проверены и перекрытий не найдено, return true.
😎
Vacancies for this task
vagas ativas with overlapping task tags are mostradas.
Ainda não há vagas ativas.