#include <stdio.h>
#include <stdlib.h>
typedef struct {
int start;
int end;
} Interval;
int compareIntervals(const void *a, const void *b) {
return ((Interval*)a)->end - ((Interval*)b)->end;
}
void intervalCover(Interval intervals[], int n, int* resultSize) {
qsort(intervals, n, sizeof(Interval), compareIntervals);
Interval targetInterval = {-1, -1};
for (int i = 0; i < n; ++i) {
if (intervals[i].start > targetInterval.end) {
printf("[%d, %d] ", intervals[i].start, intervals[i].end);
targetInterval = intervals[i];
(*resultSize)++;
}
}
}
int main() {
Interval intervals[] = {{1, 9}, {3, 7}, {4, 8}, {5, 10}, {7, 55},{10,66}};
int n = sizeof(intervals) / sizeof(intervals[0]);
int resultSize = 0;
printf("区间:\n");
intervalCover(intervals, n, &resultSize);
printf("\n结果大小: %d\n", resultSize);
return 0;
}