3169.js
/** ------------------------------------------------------------------------------
*
* 3169. Count Days Without Meetings
* Topics: Array, Sorting
* https://leetcode.com/problems/count-days-without-meetings/description/?envType=daily-question&envId=2025-03-24
*
------------------------------------------------------------------------------ */
/**
* @param {number} days
* @param {number[][]} meetings
* @return {number}
*/
const countDays = (days, meetings) => {
let res = 0
meetings.sort((a, b) => (a[0] > b[0] ? 1 : -1))
let lastFirst = 0
for (let i = 1; i < meetings.length; i++) {
lastFirst = Math.max(meetings[i - 1][1], lastFirst)
const [firstNext, secondNext] = meetings[i]
res = res + Math.max(0, firstNext - lastFirst - 1)
lastFirst = Math.max(secondNext, lastFirst)
}
res = res + meetings[0][0] - 1 + days - Math.max(meetings.pop()[1], lastFirst)
return res
}