Skip to main content

3439.js

/** ------------------------------------------------------------------------------
*
* 3439. Reschedule Meetings for Maximum Free Time I
* Topics: Sliding Window
* https://leetcode.com/problems/reschedule-meetings-for-maximum-free-time-i/submissions/1692177338/?envType=daily-question&envId=2025-07-09
*
------------------------------------------------------------------------------ */
var maxFreeTime = function (eventTime, k, startTime, endTime) {
let n = startTime.length
let res = 0
let time = 0

for (let i = 0; i < n; i++) {
time += endTime[i] - startTime[i]
let left = i <= k - 1 ? 0 : endTime[i - k]
let right = i === n - 1 ? eventTime : startTime[i + 1]
res = Math.max(res, right - left - time)
if (i >= k - 1) {
time -= endTime[i - k + 1] - startTime[i - k + 1]
}
}
return res
}

console.log(maxFreeTime(5, 1, [1, 3], [2, 5]))