DDSA Solutions

3169. Count Days Without Meetings

Time: O(m log m)
Space: O(1)
Advertisement

Intuition

Count days without meetings. Sort meetings, merge overlapping intervals, count gaps.

Algorithm

  1. 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?