Untitled
unknown
plain_text
7 months ago
1.0 kB
3
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