按照区间的起始位置排序,从小到大。然后判断边界。
int** merge(int** intervals, int intervalsSize, int* intervalsColSize, int* returnSize, int** returnColumnSizes) {
if(intervals == NULL || intervalsSize == 0) {
*returnSize = 0;
return NULL;
}
int** ret =(int **)malloc(sizeof(int*) *intervalsSize);
for (int i = 0; i < intervalsSize-1; i++) {
for(int j=i+1;j <intervalsSize;j++){
if (intervals[i][0] > intervals[j][0])
{
int temp[2];
memcpy(temp, intervals[i], 8);
memcpy(intervals[i], intervals[j], 8);
memcpy(intervals[j], temp, 8);
}
}
}
*intervalsColSize=2;
*returnColumnSizes = malloc(sizeof(int) * intervalsSize);
int k = 0;
ret[0] = (int*)malloc(sizeof(int) * 2);
memcpy(ret[0], intervals[0], 8);
for (int i = 1; i < intervalsSize; i++) {
if (ret[k][1]>= intervals[i][1]){