Untitled

 avatar
unknown
plain_text
a month ago
1.0 kB
2
Indexable
 meetings.sort((a, b) => a[0] - b[0]);
    
    const mergedMeetings = [];
    let currentStart = -1;
    let currentEnd = -1;
    
    for (let [start, end] of meetings) {
        if (start <= currentEnd) {
            currentEnd = Math.max(currentEnd, end); 
        } else {
            if (currentStart !== -1) {
                mergedMeetings.push([currentStart, currentEnd]);
            }
            currentStart = start;
            currentEnd = end;
        }
    }
    
    if (currentStart !== -1) {
        mergedMeetings.push([currentStart, currentEnd]);
    }
    let availableDays = 0;
    if (mergedMeetings[0][0] > 1) {
        availableDays += mergedMeetings[0][0] - 1;
    }
    for (let i = 1; i < mergedMeetings.length; i++) {
        availableDays += mergedMeetings[i][0] - mergedMeetings[i - 1][1] - 1;
    }

    if (mergedMeetings[mergedMeetings.length - 1][1] < days) {
        availableDays += days - mergedMeetings[mergedMeetings.length - 1][1];
    }

    return availableDays;
Editor is loading...
Leave a Comment