3169. Count Days Without Meetings
MediumView on LeetCode
Time: O(m log m)
Space: O(1)
Advertisement
Intuition
Count days without meetings. Sort meetings, merge overlapping intervals, count gaps.
Algorithm
- 1Sort meetings by start. Merge overlapping. Days without meeting = total - sum of merged interval lengths.
Common Pitfalls
- •Merge overlapping intervals. Days free = days - covered days.
3169.cs
C#
// Approach: Sort and merge meeting intervals; subtract covered ranges from total days.
// Time: O(m log m) Space: O(1)
public class Solution
{
public int CountDays(int days, int[][] meetings)
{
int freeDays = 0;
int prevEnd = 0;
Array.Sort(meetings, (a, b) => a[0].CompareTo(b[0]));
foreach (var meeting in meetings)
{
int start = meeting[0];
int end = meeting[1];
if (start > prevEnd)
freeDays += start - prevEnd - 1;
prevEnd = Math.Max(prevEnd, end);
}
return freeDays + Math.Max(0, days - prevEnd);
}
}Advertisement
Was this solution helpful?