252. Meeting Rooms

LeetCode easy original: C# #array #csharp #easy #intervals #leetcode
Der Aufgabentext wird für die gewählte Sprache aus dem Russischen übersetzt. Code bleibt unverändert.

Дан Array интервалов времени встреч, где intervals[i] = [starti, endi]. Определите, может ли человек посетить все встречи.

Beispiel:

Input: intervals = [[0,30],[5,10],[15,20]]

Output: false

C# Lösung

zugeordnet/original
class 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++ Lösung

Auto-Entwurf, vor dem Einreichen prüfen
#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 Lösung

zugeordnet/original
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]);
    }
}

JavaScript Lösung

zugeordnet/original
class 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 Lösung

zugeordnet/original
class 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 Lösung

zugeordnet/original
package 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.

😎

Stellen zu dieser Aufgabe

aktive Stellen with overlapping task tags are angezeigt.

Alle Stellen
Es gibt noch keine aktiven Stellen.